This makes sure the previously bound context is restored after creating a new context. This follows what is already happening on windows. All system backend are patched. This also removes the goto and some code duplication. Differential Revision: https://developer.blender.org/D12455