Custom error messages for required properties in Hashie::Dash subclasses

Shouldn't this be an `ArgumentError`. Also maybe future-proof it by comparing `.keys` instead of reaching into `:message`.