Hide dispatch_group starting of the inbuilt video encoder
Hide dispatch_group starting of the inbuilt video encoder

Summary: The usage of `dispatch_group`s is an implementation detail of the built-in encoder that was leaking to the interface. This is somewhat surprising, so the API should be changed accordingly. This brings device and Simulator video encoding closer together and means that we aren't leaking details of one-type of encoder. It's also possible to change the built-in encoder to behave in this way in the future. It also means that we get failure information at the time that the error occurs, rather than casting it into the void.

Reviewed By: marekcirkos

Differential Revision: D4712879

fbshipit-source-id: 9204b46438d9444ac5b7e33e40be54cc62b6af90

plu/FBSimulatorControl,facebook/FBSimulatorControl,facebook/FBSimulatorControl,facebook/FBSimulatorControl,StevenUpForever/FBSimulatorControl,facebook/FBSimulatorControl,StevenUpForever/FBSimulatorControl,StevenUpForever/FBSimulatorControl,plu/FBSimulatorControl,StevenUpForever/FBSimulatorControl,plu/FBSimulatorControl,plu/FBSimulatorControl,facebook/FBSimulatorControl