Implement QueryServiceCached. Closes #76

The QueryServiceCached is a wrapper (aka. decorator) of QueryService (for example QueryServiceXHR). It uses SimpleTimeCache to store results of previously executed requests and can return them instead of actually calling the QueryService. The expected benefit is that we reduce XHR requests for repetitive requests (typically from filters or Back and Forward moves in a browser history). Right now the configuration of the SimpleTimeCache is hardcoded (i.e. the expiration time of stored responses) but it can be easily exposed into Variables.js file.

Other changes:
- Removed NEW_REQUEST_PARAMETERS event
- MouseListener: add stopPropagation on click event (this was causing collapse of expanded filters)
- Query handling flow must ensure new request params are available before success event is dispatched. Closes #80