API Rate limit and caching mechanism (do not merge)

This update creates an optional extension to SolrIndex (which may be applied on a per-index basis if necessary) to apply caching and rate limiting features to searches.

There is also a cooldown limit feature which will block further searches after the completion of a successful search, designed to rate limit users to a reasonable level, even if the server is responding in a timely fashion. The default for this value is set to 1 second, which is pretty minimal but can be increased.

This PR is an in-progress snapshot, designed to help support direction and development of this feature.

By default this extension is not added to any index, and should be enabled on an as-needed basis.

Documentation and test cases still to come.

cc @hafriedlander if you would like to make any comments on this.

ref: CWPBUG-44