allow providing a new record to dynamic setter

Standard belongs_to relationships allow specifying new records for the
associated object, so we should allow it for polymorphic relationships too.
This commit changes it so that in the following situation: 

class Shoe
  belongs_to_polymorphic :man, :woman, as: :wearer
end

we are able to write Shoe.new(wearer: Woman.new) and have it properly
associate the records.
collapse exposed introspection to a single object

Instead of creating a lot of helper methods and/or constants, just
create a single method named #polymorpheus, which exposes aspects
of the interface that are relevant for introspection.