Linting - Apply Static Analysis to the source code

A basic set of jshint rules have been implemented in this PR and the code base has been updated to ensure it passes all the rules.

- The **chore** commits update the build and implement the jshint rules
- The **style** commits are changes to the code to pass the implemented rules - they are grouped by module.
- There is a jshint task, which does a pass of the code
- Each module has its own .jshintrc config file in its source folder, which allows jshint CLI and editor plugins to check the code separately from the Grunt task.
- Only the src folder has been considered at this stage
- The maxlen rule has been set high purposefully initially, there is a lot of "over-length" documentation that needs to be fixed up.