Ensure that deprecated params are still validated

As per Mike's comments in the pull request, the short circuit in
`#check_hash` was causing a deprecatee not to be validated when data for
both the deprecatee and deprecator were provided.

Added an additional test to cover this, renamed the hash variable to better
describe what it contains, and changed the logic in `#check_hash_parameter`
so that it reads a bit more concisely.
Log schema warnings in ConfigLoader

Log any schema warnings (currently just deprecations) that are returned by
ConfigValidator to ConfigLoader. These should be logged before raising an
exception for any errors, so that the user has the chance to fix as many
problems as possible in one sweep.

It's a deliberate decision to implement this in ConfigLoader instead of
ConfigValidator, because it ConfigLoader already logs messages and
ConfigValidator is much more general purpose and may be split to/replaced by
a separate gem one day.