Refactor grunt

- move each task to a new file
- add tests for new files and few that we're missing along the way

This is a WIP commit. Mocha is currently throwing a
SyntaxError: Unexpected token ) error, but I need a break. Any hints
on how to find the culprit will make you my best friend right now :)

When this commit is complete, it will be AWESOME