Add feature to modify input files of tasks

Use information about the changed files to run tasks only on the
changed or added files.
Proper way of handling one-to-one mappings
Update packaging information and tests
Changes in the documentation
Tidy up code and use proper .grunt directory

Use the .grunt/grunt-incremental/ directory to store data.

Note: This isn't ideal, it should really be using a database or key
value store that supports multiple processes read/writing to it.
Fix bugs to get it working with oneTarget
Fix spec for oneTarget

Use one the new file specification format that works with the
grunt.task.normalizeMultiTaskFiles method.

Ideally, it should fail with a message when it is unable to normalize
the config. Fix later.
Add some TODO into README