various minor improvements

- updated dependencies in package.json
- instead of evaluating the JSLint code explicitly, just call `require('jslint').load('latest')`
- there's no reason to wrap modules in immediate functions in Node.JS, especially if you set the JSLint option `node:true`
- switched to named functions (instead of variables with anonymous functions) so that there's less indenting
- moved global JSLint options to exactly the places they are needed, to minimise risk of adding more `eval()` (for example) without noticing

Because of the aforementioned indenting adjustment, the diff will make it seem as though a large number of changes has occurred. It may help to view the commits one-by-one for review.

I'd love to discuss these changes with you if you have any questions, concerns or comments.