Allow non-pjax page updates.

Extract transition functionality from push.js into a new file, transitions.js.
Expose a global function, similar to PUSH named TRANSITION used to transition
from one page/view to another without dictating how the new markup is sourced.

This allows for Ratchet style page transitions when rendering client side.

I'll add comments to the diff shortly, highlighting some of the changes I've made.
Any objections to: `window.PUSH.transition = TRANSITION`? There's a load order dependency, but we've already got one (`push.js` must be loaded after `transitions.js`). I can't think of any other way to make the transition function a property of `PUSH`.

The lack of a module/exports system for Ratchet makes this more awkward than it should be. Has there been any interest in exposing a single global for all of Ratchet's JS? Something like `Ratchet` instead of the `PUSH` global we have today?