Improve multi instance support for osx desktop capture

Fixes behavior with multiple desktop captures in the same scene

Also create the dispatch_queue without a name to prevent name collisions
Use recursive mutex for scene mutex

Fixes a deadlock when trying to remove a source from the GUI. The scene
item signal handlers would mark the source as removed which results in
the video thread also trying to run obs_sceneitem_destroy thereby
deadlocking the video thread (and the GUI thread)
Check if scene item is actually alive when calling obs_sceneitem_destroy

Prevents a double free in case the scene item was previously removed
Lock graphics before trying to remove a scene item

Prevents another deadlock if removing the scene item triggers source
cleanup of a source with graphics resources