Provides Many-to-Many logging

Adds in the ability to see when a many-to-many relationship is changed,
and provides several extra pieces of metadata on the properties object
to give details on what changed, how it changed, and the new endpoints
to look at