Did a lot of cleanup

@suisho I did a lot of cleanup, added a new test, fixed jshint, updated docs, added release info, added travis-ci, optimized switch statement, cleaned up logging, and added gitignore.