Changing the way eager loaded values are nested under each result.

The old way was making ResultSet confused about hydrating results having
the same association alias in the associaitons map
Fixing some failing tests
Adding joinData to the target relation array wehn using matching

The scenario that c41f40cd was wondering about came to be sooner than
expected.
Completing test for showing it is possible to use duplicate associaiton
alaises in contain
Updating function signature
Nitpicks
Merge pull request #3139 from cakephp/3.0-hydration-fixes

3.0 hydration fixes