Integration test the pg_array_associations when using the jdbc/postgresql adapter

Originally jdbc/postgresql did not transparently handle the columns,
but that was fixed a few versions back, so enable support for it.
Add AssociationReflection#cloneable? to abstract cloneability test

Previously, there were hard coded exceptions for one_to_many and
one_to_one, this makes it possible for custom association types to
define what association types they are cloneable from.
Add one_through_one association, similar to many_to_many but only returning a single record

This is most useful if you are dealing with a schema with
a join table between the current model table and the associated
model table, but where the join table has a unique constraint
on the foreign key referencing the current table, so there is
a true one-to-one relationship between the current model and
the associated model.

This is similar to ActiveRecord's has_one :through option,
assuming a single join table.

While this association is not needing all that often, it's
being included by default as it only requires minor changes
to the many_to_many code to implement.