Change the context object to an OpenStruct rather than a Hash delegator

This changes the API from:

```ruby
context[:foo] = "bar"
context[:foo] # => "bar"
```

to:

```ruby
context.foo = "bar"
context.foo # => "bar"
```