miniobject: free qdata array when the last qdata is removed

In cases with many long-lived buffers that have qdata only very
briefly, the memory overhead of keeping an array of 16 GstQData
structs for each buffer can be significant. We free the array when
the last qdata is removed, like it was done in 1.14.

Fixes #436
21 jobs for backport-mr-274-into-1.16-qdata-436 in 66 minutes and 4 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Preparation
passed #582880
gst indent

00:01:05

passed #582879
manifest

00:01:01

 
  Build
passed #582886
build cerbero android universal

00:13:07

passed #582887
build cerbero cross win32

00:07:13

passed #582888
build cerbero cross win64

00:05:27

passed #582885
build cerbero fedora x86_64

00:08:00

passed #582890
gst-ios-12.2
build cerbero ios universal

00:38:44

passed #582889
gst-macos-10.14
build cerbero macos x86_64

00:08:58

passed #582881
build fedora x86_64

00:05:12

passed #582882
build nodebug fedora x86_64

00:06:46

passed #582883
build static fedora x86_64

00:13:12

passed #582884
build static nodebug fedora x86_64

00:10:31

 
  Test
passed #582891
check fedora

00:04:38

passed #582892
integration testsuites fedora

00:13:45

passed #582897
valgrind bad

00:10:50

passed #582894
valgrind base

00:12:19

passed #582893
valgrind core

00:19:25

passed #582898
valgrind ges

00:08:08

passed #582895
valgrind good

00:12:44

passed #582896
valgrind ugly

00:03:37

 
  Integrate
passed #582899
android universal examples

00:06:47