3.0 - Implemented the select and subquery strategy for BelongsTo

Refactored the associations code into another trait as some of it was quite similar. Reused parts of the code to implement the select and subquery strategies for BelongsTo. This means that this association type can now be loaded by using separate queries, opening the possibility of eager loading records in external databases.