Fix threading bug in ReportCollectionFactory

The RemovalListener for a Gauva LoadingCache is run after the lock is dropped,
 so an expired object could be reinserted and re-registered before the removal
 listener could de-register it.

 Use additional data structures to detect this case and prevent the duplicate
 registration and subsequent deregistration.
Add back support for legacy http-client.threads config
Add back http-client.max-content-length configuration option

Max content length option was accidently removed during migration to new
JettyHttpClient.  The default value is still 16MB.