decodebin3: Make input activation "atomic"

When adding inputs dynamically, we need to make sure the new parsebin are
added *and* activated by the same thread (by taking the state change lock).

The rationale for this is that the calling thread might be an upstream streaming
thread and when activating parsebin it might call back upstream. If we don't use
the same thread (ex: when the application does a state change on decodebin3
between the moment we add parsebin to decodebin3 and we synchronize the state of
parsebin) then we would end up in different threads trying to take upstream
recursive locks.
35 jobs for !932 with decodebin3-atomic in 27 minutes and 52 seconds (queued for 19 seconds)
latest detached
Status Job ID Name Coverage
  Build Docker
passed #5694862
alpine amd64 manifest builder docker

00:00:13

passed #5694860
android docker

00:00:30

passed #5694859
cerbero fedora amd64 docker

00:00:14

passed #5694857
fedora amd64 docker

00:00:13

passed #5694863
gst-indent amd64 docker

00:00:30

 
  Preparation
passed #5694866
gst indent

00:00:12

passed #5694865
manual
manifest

00:00:25

 
  Build
passed #5694882
gstreamer
build cerbero cross-android universal

00:12:20

passed #5694891
gst-ios-13.2
build cerbero cross-ios universal

00:20:32

passed #5694884
gstreamer
build cerbero cross win32

00:06:20

passed #5694886
gstreamer
build cerbero cross win64

00:08:03

passed #5694880
gstreamer
build cerbero fedora x86_64

00:08:02

passed #5694889
gst-macos-10.15
build cerbero macos x86_64

00:13:58

passed #5694893
1809 gstreamer-windows windows docker
build cerbero msvc x86_64

00:14:34

passed #5694873
build clang fedora x86_64

00:08:37

manual #5694879
1809 windows docker allowed to fail manual
build msys2
passed #5694868
build nodebug fedora x86_64

00:08:19

passed #5694869
build static fedora x86_64

00:07:23

passed #5694871
build static nodebug fedora x86_64

00:07:35

passed #5694874
1809 windows docker
build vs2017 amd64

00:12:33

passed #5694876
1809 windows docker
build vs2017 x86

00:12:09

 
  Test
passed #5695219
gstreamer
check fedora

00:04:48

passed #5694898
gstreamer
integration testsuites fedora 1/4

00:17:16

passed #5694899
gstreamer
integration testsuites fedora 2/4

00:19:18

passed #5694900
gstreamer
integration testsuites fedora 3/4

00:15:15

passed #5694901
gstreamer
integration testsuites fedora 4/4

00:14:03

passed #5694905
gstreamer
valgrind bad

00:05:54

passed #5694902
gstreamer
valgrind base

00:10:47

passed #5694906
gstreamer
valgrind ges

00:05:52

passed #5694903
gstreamer
valgrind good

00:08:18

passed #5694904
gstreamer
valgrind ugly

00:05:11

failed #5694896
gstreamer
check fedora

00:09:46

 
  Integrate
passed #5694909
cross-android universal examples

00:06:11

passed #5694912
gst-ios-13.2
cross-ios universal examples

00:01:12

passed #5694910
documentation

00:18:18