Hash fixes: low-hanging fruit.

  * Hash#delete accepts a block for default value
  * Hash#default= and Hash#default_proc= unset their counterpart.
  * Hash#merge/Hash#update try to coerce with :to_hash
  * Hash#== Checks for value existence in rhs before comparing
  * Hash.new throws proper errors for more malformed argument list "geometries".

Also closes #522 (value existence on rhs)