A first approach to separating hydration of associations from the main loop

This will make the associations hydration more robust
Restructuring how the junction table results are returned for matching,
there is no good reason for nesting them into another alias.
Cleaning up some code in ResultSet
Adding test to prove that matching() and contain() work for the same
association path
Merge branch '3.0-better-matching' of github.com:cakephp/cakephp into 3.0-better-matching
Improving doc blocks