clean up source

* standardize on 4-space tabbing
* remove underscore dependency
* fix jshint issues