3.0 Possible solution to empty association objects

While I'm not 100% complete on this, I think this is the start of a reasonable way to solve both #3806 and #3902. When an association has 0 non-null fields the association property is left as the default value.

### TODO

* [ ] Add tests for belongsTo.
* [ ] Add tests for no hydration.
* [ ] Add tests for different loading strategies.
can you convert this to a foreach? And break of the first not-null column. That might improve it a bit performance wise