Stash modified files only if there were changes

When attempting to commit only a file deletion, that deletion would not
be included in the final commit.

This was caused by the pre-commit `HookContext` hard resetting even if
no changes were stashed. Since we stashed changes only if
`modified_files.any?` returned true, which was false if there were only
deletions, this would result in the deleted file being lost due to the
hard reset.

The solution is to change the check to diff against `HEAD` instead of
just a filtered set of changes.

Change-Id: I01bdda1e10a4241210ada9424a56a5fc8e560d0e
Reviewed-on: http://gerrit.causes.com/35914
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Test Ruby 2.1.0 via TravisCI

We've already been testing in Ruby 2.1.0 locally, but lets make sure
that contributor's commits are run against 2.1.0 as well.

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