playbin3: Avoid group deactivation deadlock.
Change locking around group deactivation to avoid deadlocks when shutting down exactly as a buffering message arrives.
The PLAYBIN3_LOCK now protects the active field of the source group. Everything else is still protected by the source-group-lock.
Also properly protect group switching operations with the PLAYBIN3_LOCK everywhere.