Add some features

@nahiluhmot @adamjt @bfulton 

These features allow accessing a relation in reverse:
```ruby
    A -> B and B -> A
```

Keeping default values when a DSL class is subclassed, and having an Array type of DSL Class Attribute for adding many components of a certain type.