Add an in-memory cache for Sprockets assets.

For some reason Sprockets defaults to no cache, so any change to an asset
requires rebuilding all assets. This really hurts for big single-page JS apps.
Adding a hash-based cache fixes that. This was figured out by @jvaill, thanks!
Fixes middleman/middleman#734.