9363ad59b0
ContextTempOverride objects were not freeing the reference to their arguments when the context managers __exit__ didn't run. This would happen if __enter__ failed with an unsupported configuration or if object was created and not used. Resolve by making ContextTempOverride a container type with GC support. This also allows the ContextTempOverride to be reused since it's arguments are now cleared when it's deallocated instead of __exit__.