Properly handle watching for vim, and use a much faster snockets

Fixes #8 (probably).

Also, this pull request starts using my fork of snockets, which does a heck of a lot less unnecessary work by making some assumptions about when the dependency graph changes. The gist of it is that when you're compiling multiple files that have the same dependencies, it now doesn't load the entire tree every time. You need to explicitly tell it to invalidate its cache.

The reason I didn't submit a pull request to snockets and have it updated is that ownership of the project was transferred, and it seems like the next version is going to take a long time to get out.