Eager loading for all relation types

Implements eager loading for `hasOne`, `belongsTo`, `hasMany`, and `hasManyThrough` relations.