Detect asset changes by saving source_digests in manifest.yml, and speed up non-digest assets

This feature speeds up the asset pipeline by only recompiling assets whose dependencies have changed. It does this by changing `manifest.yml` to include `:source_digests` as well as the digests for compiled assets under the `:digest_files` key.

This pull request depends on two others: [sprockets #367](https://github.com/sstephenson/sprockets/pull/367) and [rails #7767](https://github.com/rails/rails/pull/7767) (guides update)

### Source Digests

By computing source digests, we can quickly determine if the asset needs to be recompiled or not. If nothing has changed in the sources of an asset's dependencies, then compilation is skipped for that asset. Source digests are calculated by removing all processors except ERB, and disabling compression, so the contents of source files are concatenated and hashed. Please see [pull request #367](https://github.com/sstephenson/sprockets/pull/367) on Sprockets for the required changes.

### Generating Non-digest Assets

Instead of compiling twice for both digest and non-digest assets, non-digest assets are now generated by stripping the digests out of the already compiled css and js files. This means we don't have to process and compress the same files twice. I'm making the assumption that asset paths are the only differences between digest/non-digest assets, but please let me know if you can see any problems with this approach.

### Rails 3.2.x Support

I've prepared patches for [Rails 3.2.8](https://github.com/ndbroadbent/rails/tree/rails3_assets_speedup) and [Sprockets 2.1.3](https://github.com/ndbroadbent/sprockets/tree/rails3_assets_speedup) on branches named `rails3_assets_speedup`. I've extracted these patches into a gem called [turbo-sprockets-rails3](https://github.com/ndbroadbent/turbo-sprockets-rails3), so that myself and others can start using the feature.
Do you think there's any chance of this feature making it into the Rails 3.2.9 release?

### Tests

All the tests are passing for both `sprockets` and `sprockets-rails`. I've added one or two tests, but there already seemed to be decent coverage for the areas I was changing. Please let me know if more tests are needed.

### Testing this pull request

You'll need to add the following lines to the Gemfile of your Rails 4 app:

```
gem 'sprockets',       github: 'ndbroadbent/sprockets',       branch: 'allow_assets_without_processing'
gem 'sprockets-rails', github: 'ndbroadbent/sprockets-rails', branch: 'dont_recompile_unchanged_assets'
```

You should also add the following lines to `config/environments/production.rb` to view the logs for `rake assets:precompile`:

```
config.log_level = :debug
config.logger = Logger.new(STDOUT)
```

### Before / After

Here's some asset compilation times for a smallish Rails app.
(running `time RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile`)

**Before:**

`asset:precompile`: **26.993s**

**After:**

| Task | Time |
|-----------:|:------------|
|  **Initial `asset:precompile`**  | **18.525s** |
| `assets:precompile:primary` | 9.772s |
| `assets:precompile:nondigest` | 64ms |
| **Unchanged assets** | **9.386s** |
| `assets:precompile:primary` | 877ms |
| `assets:precompile:nondigest` | 91ms |
| **One changed `application.js` dependency** | **12.386s** |
| `assets:precompile:primary` | 3.910s |
| `assets:precompile:nondigest` | 48ms |