Add :graph_order association option, useful when :order needs to contain qualified identifiers

If :order contains qualified identifiers, there will always be cases
where eager_graph can break, such as when the table is automatically
aliased multiple times.  In such cases, you can continue using :order
with qualified identifiers, but use :graph_order with unqualified
identifiers, since eager_graph will automatically qualify such
identifiers for you with the appropriate alias for the table.
Add one_through_many association to many_through_many plugin, for only returning a single record

This basically an extension of the changes for many_to_many ->
one_through_one applied to the many_through_many association.
Like one_through_one, it handles the case where all foreign keys
referencing back to the current table are unique, or cases where
where you want to use an order and only return the first
associated row.

While here, fix the cloneable? checks in association reflection
so that you can't clone many_to_many to many_through_many.