Split features into several different modules.

Also, test them independently. This is a major refactor, and probably
breaks things, but a lot of the stuff is easier to work now, and a bunch
of improvements and bug fixes were made.
Add `blanket` and try reaching 100% code coverage.

Also, fix one of the `updates`' tests.
Add sinon as a devDependency.

Also, reformat the package.json with `npm`.