NPMization, finally

Closes #41#42 #51#62 #64 #65 #38 

I still need to add grunt-release & make the npm release if you are ok with that branch.

This PR is just here for code review.

If you want to use it as is, you can use this branch in your package.json.