3.0 Used ConventionsTrait in Association

Some rework of #4578 (see comments)

Used ConventionsTrait::_modelKey() for more DRY foreign keys creation.
That's 12 of them we don't need here...

BTW, I don't think a trait is a good place for convention methods. None of them changes a state of an object, they are just helper methods. These could be declared static in some other class.