Committing after adding AsyncHttpClientFactory and AsyncHttpClientRegist...

This pull request is made to allow the user to inject a pluggable implementation of the AsyncHttpClient. A factory AsyncHttpClientFactory has been introduced that looks at the system property or properties file for the implementation of AsyncHttpClient. Also AsyncHttpClientRegistry has been added and this is also pluggable. The registry acts as a cache for AsyncHttpClient instances so that users can retrieve an already created instance instead of creating a new one. The original AsyncHttpClient class has been renamed to AsyncHttpClientImpl which implements an interface AsyncHttpClient. This interface is returned from the methods of the AsyncHttpClientFactory.