remove the Window<->Surface distinction from the Renderer type interface

I think it does not make any sense to make different Renderer types based on their "parents".
It forces the client to know about the exact type of a Renderer (what the Renderer was created from), so this leaks out some internal information. I think this modification contains a better solution, because it allows the client not to know about the exact source of the Renderer, except if it explicitliy necessary.

Moreover: The parent is not the best name here, because it makes you assume some kind of parent-child relationship between the Window/Surface and the Renderer. I think something like RendererTarget would be better.