Gruntfile Cleanup & Documentation

refs #2622, refs #1340

- added documentation to grunt tasks which will replace the wiki page, including reordering the tasks to make the documentation easier to read
- removed grunt changelog which is no longer used
- merged jshint:shared into jshint:server
- cleanup of quote marks, formatting, line lengths etc
- also fixed the incorrect version number for grunt-docker
- added route tests to coverage
Return new tags when posts are created via API

closes #2680
- added include options when adding a post
- added functional and integrational tests
Merge pull request #2683 from lennerd/issue-2680

Return new tags when posts are created via API
Adjust update check to handle changes in API calls

closes #2681
- fixed api calls and response parsing
- added a test to for update check
- adjusted gruntfile.js to run new update check integration test
Merge pull request #2685 from jaswilli/issue-2681

Adjust update check to handle changes in API calls
Add location header to response when new object is created

closes #2635
- add new logic to the api request handler to set a location header
  when new objects are created
- added an api context to config.urlFor() to return the root url
- added functional tests for the affected routes
Merge pull request #2677 from jaswilli/issue-2635

Add location header to response when new object is created
Change error message response

closes #2643
- added error type
- added error property for validations
- wrapped errors in an array
- returns multiple errors for validation
- updated tests and admin
Merge pull request #2669 from sebgie/issue#2643

Change error message response
updated error handling on all mocha tests

- switch to using catch
- added error handling where missing
Merge pull request #2692 from cobbspur/newerror

updated error handling on all mocha tests
Docs: switch to docker & finalise config

 - We no longer need grunt-groc as we are going to use docker instead
 - Compile docker to 'docs'
 - Docker has a nice option for only building updated files
 - Added a few files we didn't need dockering to exclude list
Rejigging grunt tasks

- update submodules happens as part of init
- bower only happens in init, not when running the tests as init should
always be run first