Linting

This PR:
* [x] Adds lint tests via [jshint](http://www.jshint.com/about/). I also considered and discarded [jslint](http://www.jslint.com/) and [eslint](http://eslint.org/) as alternatives. Let me know if want an explanation for each.
* [x] Adds a minimal `.jshintrc` linter config file - all it does for now is check missing and extra semicolons. We can make it stricter one option at a time as time goes on. I'd rather get _some_ linting going with this PR than boiling the ocean up front.
* [x] Does some basic cleanup (mostly around semicolons) in `lib/`, `test/`, and `examples/` based on aforementioned minimal linter config.
* [x] Adds linting (`npm run lint`) as a Travis build step.
Sorry for not being more clear.

I thought you started with a super simple config, that only errored on missing semi-colons. Clearly this is not that, and while I agree with this change, I'm just trying to grok why we made the change considering our position of only one error `;` to start.