RecursiveOpenStruct lost when object[:prop] called instead of object.prop

Fixes #16.
Could you more directly test `#[]` to make it easier for someone to diagnose if there is a problem? Demonstrating it with `#map` calls on Arrays shows the full use-case, but exercising something a bit simpler will more directly show how RecursiveOpenStruct supports `#[]`:

```
subject[:elements][0].foo.bar.should == subject.elements[0].foo.bar

subject.elements[0][:foo].bar.should == subject.elements[0].foo.bar
```