Allowing associations in Query::contain to specify a custom finder

This allows changing the finder method an associated Table uses for contains. Also, `/ORM/Association/SelectableAssociationTrait` was passing in "all" at all times to the Query, even if you changed the finder. This addresses #4408.

Thanks!
@lorenzo, I updated this @ https://github.com/patrickconroy/cakephp/commit/fb882cca6ce96f638249aee1faa93f712d7ee3ce. It leaves EagerLoader mostly untouched, just allows the setting of 'finder' there. /ORM/Association/SelectableAssociationTrait takes care of the query if it detects there's a finder sent to it, and is also more in line with the rest of that method.