hasOne/belongsTo associations should contain associated records in afterFind

Before 1fe943d6f1814cd3756d71c035d2b69fc36ce066,
afterFind() is called twice with belongsTo/hasOne associations.
Although $results also doesn't contain associated records on first time,
it contains them on second time.

After 1fe943d6f1814cd3756d71c035d2b69fc36ce066,
it doesn't work if associated records are used in afterFind.
This commit fixes it.
Ensure that afterFind is called when using 'joins' with 'recursive' = -1
Resolve ambiguous column names
Resolve ambiguous column names for Sqlite
Merge pull request #4409 from chinpei215/master-issue2268-fix2

hasOne/belongsTo associations should contain associated records in afterFind