Ctags should be post-checkout

Easier to test, too.
Initial prototype for a Hook object

A Hook should wrap the complexity of multiple different sources and hook
states. This will have to be refactored when I'm done with it.