Split up `belongs_to` and `has_many` associations

This reorganizes the association classes into separate files.
This is to organize their code in a better manner and make it
easier to read each's logic separately.