Sniff cleanup, README update, unit tests

Sorry for the large pull request. In the future we'll be opening pull requests directly from our fork to the org repo from the feature branches, instead of from feature branches into our master branch for pull-requesting into the org repo.