Miscellaneous cleanup

@jdimond - please review and merge.

Hat-tip to @mikepugh for the inspiration for both of these items. I especially like the `catch()` addition to the test suite, Mike!
I think JSDoc uses lowercase for built in types [1] (which refers to [2]). The same also counts for number, string and boolean. Anything I'm missing here?

[1] http://usejsdoc.org/tags-type.html
[2] https://developers.google.com/closure/compiler/docs/js-for-compiler#types