Cleaned up and added `npm` checkout handler

@bmeck Please review.

* Cleaned up three space indents
* Added method documentation
* Added file headers
* Added LICENSE (MIT)
* A few minor fixes to existing handler code
* Added `npm` handler in `lib/handlers/npm.js`

Thinking this feels right for `v1.0.0`. Let me know :-D