Add uri to exception message for failed discovery requests
Retry quickly when discovery failure occures
Simplify AsyncHttpClient

Callers of AsyncHttpClient.executeAsync() shouldn't need to write unnecessary exception handling code around the call. Instead they should rely on any ResponseHandler exception being delivered through the AsyncHttpResponseFuture
Modify test cases to demonstrate bug
Demonstrate case where Netty client isn't calling the ResponseHandler.
Fix netty http client exception processing
Demonstrate bug in TestingHttpClient
Allow ResponseHandler.handleException() to return an object.

This is particularly useful if the caller has a default object they want to use in case of error.
Create DefaultingJsonResponseHandler
Allow setting environment for TestingNodeModule
Remove unused class DiscoveryFutures
Guarantee services are refreshed in returned future
Add discovery ServiceSelectorManager
Change JsonMapper to throw typed exception when parse or validation fails

Modified JsonMapper's readFrom() method to throw JsonMapperParsingException and BeanValidationException rather than throwing WebApplicationException. This allows ExceptionMappers to be created to manipulate the response if needed. ExceptionMappers don't work with WebApplicationException. Also, fixed deprecated calls to TypeFactory.type. Also added test for the throwing of the BeanValidationException.
Split refresh into forceRefresh and attemptRefresh
Assure ResponseHandler is called once and only once

Change executeAsync to return a ListenableFuture instead of a CheckedFuture since checked future requires multiple calls to response handler
Remove use of CheckedFuture from most APIs
Properly track server state in ExponentialBackOff
Align api of Duration with DataSize

Record DataSize unit so unit does not change with printing
Fixes for review feedback
Add constructor with environment and pool to TestingNodeModule