Upgrade yesod-core now that `Session.hs` logic was merged

This requires a few cabal steps that everyone will have to do once merged:

```
cabal sandbox -- hc-pkg unregister yesod-core --force
cabal install --dependencies-only --enable-tests --force-reinstalls
```

As usual, blowing away your sandbox should also work.

I also ran into a weird error with the test suite: hspec and hspec-core were
mismatched versions which didn't play nice. I don't know exactly how this
happened, but I decided the best thing to do was to update hspec to match
hspec-core. This update is why the after/before hook functions changed.

I had to do the following:

```
cabal install hspec-2.1.2
```

But everyone else should not. Now that this lower bound is in the cabal file,
the `cabal install` needed to update `yesod-core` should also bring in this new
`hspec`.

If folks could pull down this PR and attempt these steps ahead of time, I could
help out with any issues and put whatever fixes are possible* into this PR
rather than waiting and fixing master.

*This is made more difficult because `cabal freeze` doesn't include the test
dependencies -- that feature is [coming][] though.

[coming]: https://github.com/haskell/cabal/pull/1853