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
Reviewed-on: http://gerrit.causes.com/35559
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add support for commit-msg hooks

Change-Id: Ib159889f57131a40e0868c75f33429534a6db123
Reviewed-on: http://gerrit.causes.com/35560
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Move to HookContexts

Change-Id: Ib9082dd93b5019c79e4117ec60f9fd11cd905786
Reviewed-on: http://gerrit.causes.com/35561
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Move hook_type out of HookRunner

Change-Id: I96d4d16ac7a27865421d7c018645d15dfe51122a
Reviewed-on: http://gerrit.causes.com/35562
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Begin adding specs for pre-commit hooks

Change-Id: I6ff20a406ae961b952ce91ca5bf6faed61e3b549
Reviewed-on: http://gerrit.causes.com/35563
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add specs for commit-msg hooks

Change-Id: I469b1c6fc51ade36e41a4d38f4844f9b3df05584
Reviewed-on: http://gerrit.causes.com/35564
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add BundleCheck post-checkout check

With specs!

Change-Id: I2330626aca5f5e8f9cb001b8e9192b341bed0027
Reviewed-on: http://gerrit.causes.com/35565
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add IndexTags post-checkout hook

Change-Id: Id7858b3f51fa320a6a10be78eecd602563fda6ac
Reviewed-on: http://gerrit.causes.com/35566
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Improve CLI interface and specs

Change-Id: I4f7a8a077e58816779c47e98dc422e456d1c455d
Reviewed-on: http://gerrit.causes.com/35567
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Improve specs for Installer

Change-Id: I5cad4c19fb06b1baddae73c7dc2435856d55ebec
Reviewed-on: http://gerrit.causes.com/35568
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Remove some unused specs

Change-Id: Id8f385afdca1f7b0ca55cb37c67d88701b206ba5
Reviewed-on: http://gerrit.causes.com/35569
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add specs for PreCommit and CommitMsg contexts

Change-Id: I1037b8747ddb2b79235cc171ef840430e58310be
Reviewed-on: http://gerrit.causes.com/35570
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Replace deprecated mock with double

Change-Id: I64b49e127c0d99c381472c2420b5154d764fc775
Reviewed-on: http://gerrit.causes.com/35571
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add PostCheckout context specs

Change-Id: I618488922811b331bc256a88d8ace8ab23422e3a
Reviewed-on: http://gerrit.causes.com/35572
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add specs for ConfigurationLoader

Change-Id: Ia8145411b953e208baf2ab47004ee1ed43cbaf2b
Reviewed-on: http://gerrit.causes.com/35573
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add partial specs for Configuration

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

Change-Id: I4be442c7eae7db4cb3298277cb7049565a1ed1f6
Reviewed-on: http://gerrit.causes.com/35574
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add specs for Configuration#merge

Change-Id: I8354549cede40792f8c1af3323be28197387f184
Reviewed-on: http://gerrit.causes.com/35575
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add specs for Configuration#apply_environment!

Change-Id: I4b9b8aeee0489079fa6772f7df800642db0df038
Reviewed-on: http://gerrit.causes.com/35576
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Remove commented lines from spec_helper

Change-Id: I75282aa31c37a56be811894d751c4f801e54de0f
Reviewed-on: http://gerrit.causes.com/35577
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Add basic Rubocop config file

Change-Id: Ica9927ce24d485538bfc98e96acd586afa6bbb2a
Reviewed-on: http://gerrit.causes.com/35578
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>