Added grunt, tests, oss conventions

Adding grunt and the tests was easy, UMD was a pain but I made it through :triumph:

See the commit log for what I did, use [Show Diff Stats] to see the files. It should be rebased on your latest edits,

I left a few test cases commented out.

Tests are very editable for the future. Also when it runs it writes the values to JSON in a tmp folder, you could then easily copy the dump file and use as a new fixture. Doing this also works well with Git, as you can review your fixture updates (in the diff).

I also applied some oss standards, like having code in /lib, /bin and /vendor. I also pimped the package.json a little.

Side note: I'm not a huge fan of UMD as main code myself, it needs so much boilerplate. You could look into using TypeScript or something like browserify to make a separate AMD build from simpler code (you have grunt now so is easy to do). 

I also added JSHint.. :smiling_imp: