Add jshint to pre-commit hook

Summary of changes:
* Define the node modules to be installed in package.json.
* Include 'jshint' as a dev dependency and 'less' as a
  dependency. 'less' is no longer installed globally.
* Since jshint doesn't include non-JavaScript files, specify the files and
  folders to be ignored in .jshintignore file.
* Install the node modules defined in package.json while provisioning.
* Add the node_modules/.bin/ folder to $PATH in ~/.bashrc.
* Rename the pre-commit hook script to a generic lint.pre-commit
* Refactor the calling of each lint tool into a separate function
  and include jshint.
* Modify the pre-commit script to call flake8 and jshint one after the
  other on the relevant files to be committed.
Merge pull request #411 from lgp171188/include-jshint

[WIP] Add jshint to pre-commit hook