Implementing ability to use a custom join type in contain

This helps overriding association settings without setting state
in the association classes.

Will be used for implementing a feature request in TranslateBehavior