Refactor Overcommit framework

Initial refactor commit. Specs are currently broken, but I'm marking
this off as a chunk of work for now, and will start working more
atomically from now on.

Change-Id: I8a120cb660046e3d7b23e302b0054de932df2bec
Add support for commit-msg hooks

Change-Id: Ib159889f57131a40e0868c75f33429534a6db123
Move to HookContexts

Change-Id: Ib9082dd93b5019c79e4117ec60f9fd11cd905786
Move hook_type out of HookRunner

Change-Id: I96d4d16ac7a27865421d7c018645d15dfe51122a
Begin adding specs for pre-commit hooks

Change-Id: I6ff20a406ae961b952ce91ca5bf6faed61e3b549
Add specs for commit-msg hooks

Change-Id: I469b1c6fc51ade36e41a4d38f4844f9b3df05584
Add BundleCheck post-checkout check

With specs!

Change-Id: I2330626aca5f5e8f9cb001b8e9192b341bed0027
Add IndexTags post-checkout hook

Change-Id: Id7858b3f51fa320a6a10be78eecd602563fda6ac
Improve CLI interface and specs

Change-Id: I4f7a8a077e58816779c47e98dc422e456d1c455d
Improve specs for Installer

Change-Id: I5cad4c19fb06b1baddae73c7dc2435856d55ebec
Remove some unused specs

Change-Id: Id8f385afdca1f7b0ca55cb37c67d88701b206ba5
Add specs for PreCommit and CommitMsg contexts

Change-Id: I1037b8747ddb2b79235cc171ef840430e58310be
Replace deprecated mock with double

Change-Id: I64b49e127c0d99c381472c2420b5154d764fc775
Add PostCheckout context specs

Change-Id: I618488922811b331bc256a88d8ace8ab23422e3a
Add specs for ConfigurationLoader

Change-Id: Ia8145411b953e208baf2ab47004ee1ed43cbaf2b
Add partial specs for Configuration

Still have to add specs for `merge` and `apply_environment!`.

Change-Id: I4be442c7eae7db4cb3298277cb7049565a1ed1f6
Add specs for Configuration#merge

Change-Id: I8354549cede40792f8c1af3323be28197387f184
Add specs for Configuration#apply_environment!

Change-Id: I4b9b8aeee0489079fa6772f7df800642db0df038
Remove commented lines from spec_helper

Change-Id: I75282aa31c37a56be811894d751c4f801e54de0f
Add basic Rubocop config file

Change-Id: Ica9927ce24d485538bfc98e96acd586afa6bbb2a