Move asset compression and digest creation to separate methods

This allows for easily overriding the default of yuicompressor
and sha1.
Add spec for handling trailing slashes in paths
Add specs for :css/:js options with a multi-level hash
Add :{compiled,}_{js,css}_route options

These allow you to have separate routes for js/css in compiled
and non compiled mode, so they don't have to match the paths used.
Add :add_suffix option, for appending suffix to route in non-compiled mode

This is probably only useful in rare cases, such as when you are
caching the output in non-compiled mode.