Refactor Many-to-many assoc tests
Refactor Many-to-many assoc tests

An attempt to further clarify the many-to-many assoc tests.
Here's what I was aiming for:
* Separation of implementation from conditions / results.
  (So, lay out the sources, call a function that does all the boring insertion
  stuff, then inspect the results - easier to see the critical test logic).
* Deduplication of boilerplate insert/associate code.
* No magic numbers. All offsets between source positions are explicit,
  so that you can see exactly how they are derived.
* Only relevant numbers are shown/altered (we don't care about e.g. source flux
  here).
* Database results as dictionaries - this makes the test assertions more
  readable.

I also implemented an example test for #4778
(https://support.astron.nl/lofar_issuetracker/issues/4778)

mkuiack/tkp,mkuiack/tkp,transientskp/tkp,bartscheers/tkp,transientskp/tkp,bartscheers/tkp