MBS-2021: Derive recording.length from median(track.length)

Introduces a new 'median' aggregate for PostgreSQL and subsequently uses
it to calculate the recording.length column from all tracks linked to that
recording.
MBS-2021: Add upgrade scripts
MBS-2021: Do not allow updates to recording lengths that are not standalone
MBS-2021: PgProve the new recording.length properties
MBS-2021: Regenerate SQL scripts
MBS-2021: Fix tests since the schema change
Ignore recording length edits in the RE and elsewhere
Delete recordings from cache when tracks are inserted/updated/removed

These actions may cause the recording length to change.
Clear recordings from cache after TOC is attached
Pass used_by_tracks to recording create form
Merge branch 'beta' into mbs-2021
Factor out median_track_length function, fix pgTAP tests
Update update script
Merge remote-tracking branch 'bitmap/mbs-2021'

* bitmap/mbs-2021:
  Update update script
  Factor out median_track_length function, fix pgTAP tests
  Pass used_by_tracks to recording create form
  Clear recordings from cache after TOC is attached
  Delete recordings from cache when tracks are inserted/updated/removed
  Ignore recording length edits in the RE and elsewhere
  MBS-2021: Fix tests since the schema change
  MBS-2021: Regenerate SQL scripts
  MBS-2021: PgProve the new recording.length properties
  MBS-2021: Do not allow updates to recording lengths that are not standalone
  MBS-2021: Add upgrade scripts
  MBS-2021: Derive recording.length from median(track.length)