Enable adding genes with the add method, which is semantically nicer than '<<'
Pass self to the block rather than calling instance_exec for the gene dsl
Add a family attr_accessor, refactor needs, provides to be attr accessors.