use a file based cache like sprockets-rails

This is especially useful for large javascript apps. It allows the cache to be persisted between sessions so that you aren't recompiling from scratch on every new run of `middleman server`. This change still allows for incremental recompilation during development, so it keeps the speed and loses the pain of rebooting middleman.