Fingerprint assets

This PR is a bit of fun and was instigated by [this tweet](https://twitter.com/jonicklas/status/403860934906888192), out of my desire to impress @jnicklas. (Seriously, though, this has been on our radar for months and months.)

To turn on fingerprinting, all one has to do in their `config/application.js` is:

``` javascript
enableAssetFingerprint: true
```

This will load [grunt-asset-fingerprint](https://github.com/testdouble/grunt-asset-fingerprint)'s "assetFingerprint" task to the project and place an "assetFingerprint:dist" target just before "pages:dist".

What it does:

* Will copy assets with a name that appends an md5 hash to the project's `dist/js/app.js` and `dist/css/app.css` files. This set of files can be overridden (see `assetFingerprint.dist.src` in the config) easily enough
* Will create a JSON manifest of logical paths mapping to hashed paths to `dist/assets.json`
* The pages task will, in turn, make `assets` available as a JavaScript object in your build-time HTML templates, for you to do with as you please (for example, dumping them to a JavaScript global). This only happens during the `pages:dist` target, it'll be an empty object otherwise.
* The default pages template context config includes  `js` and `css` for the locations of the main JS & CSS bundles, this task will overwrite those to point at the fingerprinted ones.

What it doesn't do yet:

* Default fingerprint images. I imagine this is desired, just need to think it through
* Provide Less/Sass helpers (much less some other CSS pre-processing scheme) for interpolating assetPaths

Any other ideas of what we could use? cc/@davemo