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)