Change OpenGL resources dispose behavior

Simplified dispose behavior for opengl resources. It shouldn't be MonoGame's responsibility to delay resource disposal (should be done by a higher level rendering component). This PR should fix #3188

Note that this PR keeps `GraphicsDevice.AddDisposeAction()` to be used by the `GraphicsDevice.PlatformDispose` method. This is on purpose since there might be some corner cases there that I didn't get a chance to test yet.