Re-factor and upgrade to support Java 8 CompletableFutures as well as AdvancedClient capabilities

The squashed commits include:
Move clients to separate package; fix SimpleClient integration test
Move common test functionality to TestHelper
Add SegmentedClient integration test
Reduce logging messages; add documentation
Bump version; remove unnecessary logging configuration
doclint turns javadoc warnings into errors; ignore for now
see http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
Add snapshot repository for deploying snapshots
Bump major version due to platform change (Java 7 to Java 8)
Add sync retrieval integration test
Re-factor locations of classes: all interfaces in top level folder, change name of PipelineStage to ProcessingStage
In progress commit, tests broken
Refactor, WIP
Tweak synchronization, processing of segmented packets
Move tests around
Fix TestHelper bug
Complete tests
WIP
Add streaming test
Fix segmented server integration test
Finish refactoring
Update POM and README
Update documentation
diff --git a/src/main/java/com/intel/jndn/utils/Server.java b/src/main/java/com/intel/jndn/utils/Server.java
new file mode 100644
index 0000000..197a52a
--- /dev/null
+++ b/src/main/java/com/intel/jndn/utils/Server.java
@@ -0,0 +1,53 @@
+/*
+ * jndn-utils
+ * Copyright (c) 2015, Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU Lesser General Public License,
+ * version 3, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+ * more details.
+ */
+package com.intel.jndn.utils;
+
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import net.named_data.jndn.Data;
+import net.named_data.jndn.Face;
+import net.named_data.jndn.Name;
+import net.named_data.jndn.OnInterestCallback;
+
+/**
+ * Base interface for defining a server; see descendant interfaces for different
+ * modes of serving packets. This class extends {@link Runnable} expecting
+ * implementing classes to do any necessary event processing in the
+ * {@link Runnable#run()} block, thus allowing different ways to manage servers
+ * (e.g. single-thread vs {@link ScheduledThreadPoolExecutor}.
+ *
+ * @author Andrew Brown <andrew.brown@intel.com>
+ */
+public interface Server extends Runnable, OnInterestCallback {
+
+  /**
+   * @return the {@link Name} prefix this server is serving on.
+   */
+  public Name getPrefix();
+
+  /**
+   * @return the registered prefix ID of the server on the {@link Face} or -1 if
+   * unregistered
+   */
+  public long getRegisteredPrefixId();
+
+  /**
+   * Add a stage to the server pipeline. Each stage should be processed once the
+   * server has the {@link Data} packet available to send (e.g. after a callback
+   * has produced a packet); also, stages should be processed in the order they
+   * are added.
+   *
+   * @param stage a Data-to-Data processing stage
+   */
+  public void addPostProcessingStage(ProcessingStage<Data, Data> stage);
+}