Use per-file .rubocop.yml for staged files

Rubocop supports using a separate configuration file on a per-directory
basis. For each file, it first checks the directory that file is in,
then recursively scans upwards until it finds a `.rubocop.yml` file; if
it finds none it checks the user's home directory.

Overcommit wasn't running Rubocop with the appropriate configuration if
a user had a directory-specific configuration.

The solution was to extract all relevant Rubocop configurations for all
files, and to run each group of files against that particular
configuration (this is better than naïvely running each file separately
with its own config, which could take a long time with many files).

Change-Id: I0b11748eb3f346dca4aff3351dd5d73fa72be50f
Reviewed-on: https://gerrit.causes.com/30059
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Beautify CHANGELOG

Add some headings to the version numbers in the CHANGELOG to make it
more readable.

Change-Id: I86f2784b7ff3e386c2466fe8c3aa3aae78a8d036
Reviewed-on: https://gerrit.causes.com/30171
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Use Pathname.ascend in rubocop_yml_for

Using `Pathname.ascend` is a little more conventional. Also updated the
changelog to mention the fix in 2119b447.

Change-Id: I7a8f8bdd61f64bda3056dda72102b47da7fc2146
Reviewed-on: https://gerrit.causes.com/30172
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Tested-by: Shane da Silva <shane@causes.com>
Remove Gemfile.lock from repo

Gems aren't supposed to include a `Gemfile.lock` since the Gemspec
should explicitly list all dependencies.

Change-Id: I9f1f90179994337a5283cfa27d7e3ace4f0851e2
Reviewed-on: https://gerrit.causes.com/30173
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Cut version 0.3.1

Change-Id: I9bb09e03c688945994bcef923d55e3e53dc74663
Reviewed-on: https://gerrit.causes.com/30174
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Use enum_for with ascend in rubocop_yml_for

It turns out that even though `Pathname#ascend` wasn't written to return
an enumerator when no block was given, you can use a handy-dandy helper
called `enum_for` to wrap the call in an enumerator.

This allows the method to be drastically simplified to use `map` and
`find`.

Change-Id: Idda85f38ffd0e683334a20cdd114c5d4234d8d66
Reviewed-on: https://gerrit.causes.com/30175
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Lann Martin <lann@causes.com>
Reviewed-by: Greg Hurrell <greg@causes.com>
Reviewed-by: Joe Lencioni <joe.lencioni@causes.com>