Modifications (and cucumber features) to allow the extension to cache optimization between runs.

The caching consists of two stages.

1.  On the first run, after optimization, the extension will generate a manifest file containing
the modified timestamp for each image in the build directory.  On subsequent runs, if the timestamp
of the file has not changed, we will not try to optimize it again.  The manifest is stored in the build
directory and is called `imageoptim.manifest.bin`.

2.  By default Middleman will overwrite optimized images with the source image on every build.  The
extension now inspects the sitemap for image resources and looks for an existing file in the build
directory.  If the file exists and if it is newer than the source file, we fake out Middleman by
changing the source to poing to the existing file in the build directory.  This causes Middleman to
see the file as unchaned and we avoid overwriting it.

The following cucumber scenarios have been added.

Scenario: Basic optimization
Scenario: Storing timpestamps to avoid re-optimization
Scenario: Skipping optimization when the timestamp hasn't changed
Scenario: Regenerating the build image if the source has changed

To run the scenarios just run `cucumber`.

~~~bash
$ cucumber
~~~