(TK-23) Port to apache HttpAsyncClient

* Ports the code over to use the Apache HttpAsyncClient library
  instead of http-kit, as we were getting some weird and inconsistent
  SSL errors from http-kit, and
* Simplify the API (by eliminating a lot of the supported configuration
  options).  Some of these options we'll eventually want to add back in,
  but for now, getting rid of them makes the API less cluttered and
  also gives us the opportunity to do a better job writing tests
  for new options when we do add support for them.

For now it only supports constructing a new client on every request.
I intend to add API for creating a client explicitly, and a protocol
for how to interact with the client.  This will allow users to
re-use an existing client as they see fit... but this hasn't been
implemented yet.
How concerned are you about how much this seems to depend upon specific implementation details of the Clojure language itself?  Suppose if we wanted to be pedantic about it, could expand this to validate against other interfaces that a promise would implement - IPending, IFn, and IDeref (from http://stackoverflow.com/questions/14690082/how-to-check-if-a-value-is-a-promise).  I'm good however you want to go on this, just thought I'd ask the question.