Use jQuery.ajaxTransport to record and replay AJAX requests

* Goal is to separate client-side performance bottlenecks from
  server-side / request-latency issues
* Uses sessionStorage or localStorage to record results between page
  views
* By default, does nothing.
* `GGRC.RequestStoreDoRecord()` will enable recording and refresh
* `GGRC.RequestStoreDoReplay()` will enable replay and refresh
* `GGRC.RequestStoreDoNothing()` will disable recording and replaying
Improve GGRC.RequestStore

* Encapsulate better
* Allow simultaneous record and replay (to handle request signature
  changing due to timing issues with replay.)
* Don't auto-reload when changing state
* Limit cached requests to just "GET" requests
* Change API:  GGRC.RequestStore.<method>:
  - `set_record(true/false)`
  - `set_replay(true/false)`
  - `pause()` -> `set_record(false); set_replay(false)`
  - `clear()`
Merge remote-tracking branch 'origin/develop' into feature/client-record-replay
Merge remote-tracking branch 'origin/develop' into feature/client-record-replay
Comment out log messages in default execution path

* This way, this can be merged to `develop` without impacting deployed
  behavior
Move `GGRC.RequestStore` to its own file; add commentary
Merge pull request #1177 from reciprocity/feature/client-record-replay

Client record/replay