Add grunt publish task

* Runs linter
* Runs tests
* Updates docs
* Updates package version
* Creates Git tag
* Pushes repo + tags
* Publishes new tagged version to NPM
* Updates GitHub documentation site