Add an option to install a different hook template.
Merge branch 'master' into manual_hook
The hook list source of truth is the filesystem.

Instead of maintaining an internal hash that must stay in sync with
the filesystem, we just do one directory glob, and that becomes the
canonical list of hook templates.
Display an error message when a hook template can not be found.
`Cli#install` handles missing second argument.

When a second argument is missing ARGV[x] returns `nil`. If we pass
`nil` into a method, that is the value, not the `key = foo` default.
Here we check for the lack of a key, and use "default" if one is not
present.

If this gets much more complex, we should switch to a proper option
parser.
Merge pull request #105 from jish/manual_hook

Manual hook