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.
Yes, the specific error was:

> Use '===' to compare with 'undefined'.