Make hashes in arrays indifferent to string/symbol keys

JSON::Schema.add_indifferent_access was only able to recurse into
hashes directly contained within another hash; as soon as it found a
value which was not a hash it stopped. This meant that hashes within
arrays were not being made indifferent to the key type, and so data
with symbol keys in a hash in an array were failing validation when
they should have been valid.

This commit adds a failing minimal test for this case and fixes #104.
We think that #104 is a duplicate of #101 and #94 so those issues are
likely to be fixed by this as well.