switch to jshint

reasons:
 * jshint has more options
 * jshint's options are well documented, with examples
  * see: http://www.jshint.com/docs/#options
 * jshint differentiates between warnings and errors (not sure if jshint
   doesn't do this, or I'm just not sure how to set it.  looking at
   http://www.jslint.com/lint.html I'm thinking jslint doesn't support
   warnings vs errors)
  * NOTE: for vim you can get https://github.com/scrooloose/syntastic
    which will show you both for linted files
 * jshint supports a directory-specific `.jshintrc` options, in addition
   to a `.jshintignore` file
  * this could save some typing, though we would probably still need to
    leave the `/* global */` comments in there as they appear to be
    file-specific
  * more info no the options page: http://www.jshint.com/docs/#options

NOTE: The 'jslint' comments at the top are now moved into a
project-specific '.jshintrc' json file.  The global comments can still
be used to identify external variables in each script, with the only
difference being `browser: true` in '.jshintrc' may be a little
different than `browser: true` in the jslint comments (they both define
a list of globals specific to the browser iiuc), but this wasn't an
issue for any of the files I've updated (those with 'jslint' comments).

NOTE: I've checked the changed files, and they all (with a small change
to the indentation in `lib/css.js`) pass without warnings or errors.

As a final note, I've changed '.travis.yml' so it should still test
the javascript files for compliance w/jshint