3.0 misc orm fixes

Fixes https://github.com/cakephp/cakephp/issues/3873

Also fixes a bug that I came across while browsing the app containing the above issue. The fix comes at the cost of axing one feature in the Entity class, it will not be possible to use indirect modification on properties hidden by a `_get*` method. In hindsight I think that was  a bad idea to have.