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.
I could also split up the back and forward cases into separate tests, but it's not obvious to me how to get into the right state to test the forward case without repeating most of the code from the first half of this test case.