Enhanced ObjectifiedHash with Hashie

This should make the `ObjectifiedHash` behave in a more regular fashion.
Some examples:

* `objhash['name'] == objhash[:name] == objhash.name`
* `objhash.name?` is `true` if the value of `objhash[:name]` is truthy.
* `objhash.keys` returns the list of keys on the hash.

In addition, there are now tests for `ObjectifiedHash`.