Add caching to avoid repeated tasks. Resolves #43.

grunt-modernizr will avoid building Modernizr if each of the following conditionals are met:

- The build destination file exists (modernizr.dist.dest) AND
- grunt-modernizr's package.json exists AND
- grunt-modernizr has been previously run, and the metadata output exists AND
- the stored grunt-modernizr version matches the current version AND
- the stored Modernizr dependency version matches the current version AND
- the stored Modernizr options object deep-equals the current options
Updating test suite.
Add tests for cache validation and invalidation.