Merge Reporter into HookRunner

The `HookRunner` and the `Reporter` class were initially separated to
try and decouple the logic of displaying results from the logic of how
to run the actual hooks.

Unfortunately, these two concepts are tightly-related. For now, merge
them together.

Change-Id: I6f284c0fdf4a619c91ede53e04c06f3445d1d4c4
Fix plugin loading

Fix loading of plugins from the plugin directory.

In the process, change the default plugin directory name from
`.githooks` to `.git-hooks`. This will make migrating existing
repositories a bit easier since they'll be able to support plugins for
both the old and new Overcommit during the transition period.

Change-Id: I88c9573883e7b116c362dee03077cc715862019f
Allow updating commit message in commit-msg hooks

Add a helper `update_commit_message` to provide a standard interface for
updating commit messages via commit-msg hooks.

Change-Id: If7707b842db38460c1ae3d495543aca02a6326a4
Allow hooks to be skipped with SKIP_HOOKS env variable

`SKIP_CHECKS` was the old form, and `SKIP` is the preferred new form,
but it is likely that new users will try `SKIP_HOOKS`, so add support
for it.

Change-Id: Ie03c62fc68366de42113282d07560af00e695acc
Add post_install_message to gemspec

This will remind users to install Overcommit in their git repository
after they have installed the gem.

Change-Id: Ife948c194c1acdc4ae9361ef75d19e4988c5aadc
Update gem authors and emails

I've put a hefty amount of work into this project, and I don't think
anyone's going to mind me mentioning that.

Change-Id: Ifc07bac3e7fbf1168a6fde2272ac27d43ca808c4
Reopen STDIN when Overcommit isn't installed

Git hooks are not run in an interactive context, meaning STDIN isn't a
TTY and so we can't read user input.

The solution to this is to reopen STDIN to manually wire up a TTY.

Change-Id: Ia12c5cceba26d95313bdf1b1f9d271ef3a421248
Reset gem path after installing Overcommit

When running the Overcommit hook when Overcommit has not been installed,
the user is asked to install it. However, after installation you could
not load the `overcommit` gem since the gem path was already cached.

Fix this by resetting the gem path.

Change-Id: I868edd68ef4603610faf3d8f98f648f2691dfe38
Display better error when unable to install

When attempting to install Overcommit as part of running the hook, we
didn't give an informative error if for whatever reason this install
failed.

Improve the error message and change the exit status to follow the
`sysexits` standard.

Change-Id: I91fe79932a93cc9df5a7568fd223287c956e0f27
Report error when unsupported Overcommit installed

For users that are already running an older version of Overcommit,
they'll get a weird error if they somehow install the new hooks on their
machine and attempt to run them.

This solves this problem by reporting a helpful error message if the
version of overcommit that was loaded is less than a particular version.

Change-Id: I6fa26c05e0224daffc0d0909bff0d11b91506094
Use REPO_URL constant for gemspec homepage

This reduces code duplication.

Change-Id: Id32cbee7b265939ff3477c07d65192fc860aa0f3