Automatically generate an index for the generated columns for inherited objects.
The association name is built base on the model name, which is the class name, not the table name.
When generating the superclass class object before the object has been persisted,
ensure that a back reference is assigned, in case the superclass object is made
persisted.

This is a case which can happen when there is a 1:many relationship between some
other model and the superclass. The old code would only persist the superclass
and the derived class would not be persisted (because the relationship is one-way)
Merge branch 'lowjoel-fix-association-name-with-modules'
Merge branch 'lowjoel-fix-superclass-save'
Implement colume_for_attribute for compatibility with simple_form
Implement some forwarders which are used by active_enum
Merge remote-tracking branch 'origin/lowjoel-active_enum-compat'
Fix reflection upon the derived class. The superclass relations should be there.
Merge remote-tracking branch 'origin/lowjoel-fix-nested-form-compat'

Conflicts:
	lib/active_record/acts_as_relation.rb
Fix broken merge.
Actually apply the forwarding.
Merge remote-tracking branch 'origin/lowjoel-fix-nested-form-compat'
Allow acts_as_relation to work where the superclass does not have enumerated attributes but the subclass does.
Merge branch 'lowjoel-active_enum-compat'
Fix registration of derived class enumerations.
Merge remote-tracking branch 'origin/lowjoel-active_enum-compat'
Call instance_eval with the correct line numbering.
Handle the case when we are retrieving the object after persistence.
Merge branch 'lowjoel-fix-superclass-save'