Lots of changes/fixes/additions

This is a bit of overhaul of the whole library. Hope you are ok with it :bowtie:. See details below.

- Added cache-swap for faster linting of files on the same codebase. This cache uses the sha1 to keep track of the good files and ignores them if they have been linted before
- Added testing (Mocha, Chai)
- Moved files around to match Node's package guidelines
- Refactor code to use almost same code paths for all entry points (Node, Grunt, CLI)

Pending: Add caching to README file. I will add a commit to it or submit a new PR if you already merged this one.

Excuse my huge commit :smirk: