Add Configuration and ConfigurationLoader classes

Start of the support for allowing users to configure `haml-lint`. Most
of this code is borrowed from both `overcommit` and `scss-lint` gems.

The `overcommit` configuration code is newer and cleaner, but doesn't
perfectly map to this application, so some concepts are borrowed from
`scss-lint`. At the end of all this, we'll hopefully be able to use this
as a testing ground for a cleaner configuration system that will
eventually be ported back to `scss-lint`.

Change-Id: Ib5f45bccb61f5ca85f507b46e9864ecc6828801b
Reviewed-on: http://gerrit.causes.com/40422
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane.dasilva@brigade.com>