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.
Probably the simplest way would be to set `maxCacheLength` to 1 instead, which would reduce the number of steps needed significantly. I was a little nervous about that since it puts it in the "one" category of "zero, one, many", but it's probably OK. I could also assert in fewer places and just assume that the intermediate steps are working correctly.