Add load balancing and RoundRobinLB
Add ServerStateObserver and PingStatusObserver

To use the PingStatusObserver the PingRequestHandler (in solrconfig.xml)
must be configured with the healthcheckFile.
Add scheduled server state observation.
Add more tests for PingStatusObserver
RoundRobinLB now checks the server status.
Simplify AsyncSolrClient error handling.

- The try/catch(IOException) in query was not necessary, because
  exceptions could only occur in the AsyncCompletionHandler
- toQueryResponse could throw an exception. This lead to a
  failed future because AHC invokes onThrowable with an exception
  thrown by onCompleted. Even if this is documented, it's more clear
  to handle this explicitely.