Video reset is now never required for movies.

Previously, the OpenGL video player required a video reset after playing. That
logic is no longer needed.
Don't open multiple windows at once.

Previously we relied on the THRenderTarget destructor to close the window when
we create a new one. The problem with relying on THRenderTarget::~THRenderTarget
is that it only gets called when the GC collects the object, which doesn't
happen instantly.

Now we call a new THRenderTarget::destroy() method to ensure the window is
destroyed before recreating it.

Fixes GH-113.
Update the THRenderTarget rather than recreating.

This means that transitions into and out of fullscreen mode are smoother.
Reload FT fonts when changing renderer.

When we change renderer, the textures cached by the FT fonts are invalidated, so
clear the cache at that time.
Merge pull request #250 from jorgenpt/clean-up-window-management

Clean up window management