ACCUMULO-3199 Internal refactor to add ClientContext

  This patch introduces a new ClientContext object that contains Credentials,
  Instance, and Configuration provided from the client API. This new object is
  passed around internally in place of the previous three objects. An
  AccumuloServerContext is also introduced, which extends the ClientContext.
  Together, these objects ensure the proper configuration, credentials, and
  everything else needed to communicate with other system components are
  available to any RPC-related code.

  These new object types also reduce the need to create multiple references to
  commonly used internal objects (such as HdfsZooInstance and
  SystemCredentials), and avoids storing information in static fields. As a
  side-effect, this should allow for better testing with mocked components.

  This fixes ACCUMULO-3252, and may lay some groundwork for ACCUMULO-2589.