Don't use default Hash value

It is harmful for local use. hash[:unknown] also returns the default
value but it should returns nil to detect :unknown is unknown key. If
it is not detected, a bug may be hidden. And it causes difficult to
debug.

It is harmful for global use. It doesn't behave as the standard Hash
object. A new class should be defined for the case such as OrderedHash
in Active Support.