Grunt build process + JSHint file checking

Implementation of #252.

This replaces the Makefile with a Gruntfile. All existing make targets have been ported over.

JSHint has also been added. Updating/fixing the files in the codebase will be a big job best approached bit-by-bit - I didn't want to include such changes in this pull request as it's best to do that once we have agreement on the JSHint config and more test coverage to make sure nothing gets broken. So for now the JSHint check just runs on the Gruntfile itself.

Build process now does the following steps:   

1. Copy latest changes to Firefox and Safari folders
2. Run tests
3. Run JSHint
4. Package Chrome and Firefox extensions

If any step fails the whole build fails. Travis config has been updated accordingly.

The README has been updated with new build instructions.