Add grunt publish task

The goal is to make releasing a new version a one-command process.  e.g. `grunt publish` or `grunt publish:major`

* 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