Trim cache length in cachePop, not just cachePush

This fixes a bug where the `pjax.defaults.maxCacheLength` setting was being applied when navigating to new pages but not when users hit the back or forward buttons.

Two symptoms of this were:
* Setting `maxCacheLength = 0` didn't completely disable caching; hitting the back button followed by the forward button would ask the server for the first page but read the second one from the cache. I think this is probably the bug that was discussed on issue #406.
* Regardless of what you set `maxCacheLength` to, the forward cache would continue growing as long as you kept hitting the back button.

These tests work, and I verified that they fail on the existing code, but I'd definitely be interested in suggestions for making them easier to read or less fragile. I mostly just followed the lead of the "no initial pjax:popstate event" test.
This test is a bit scary in size. Any chance it could be trimmed down?