Make sense of render thread #9

Avoid using the RenderPipeline by setting DepthSortAxis via the Renderer.
Make sense of render thread #10

Avoid sharing the RenderPipeline with the main thread by introducing the
RenderData which collects RenderElements for a frame and is only owned by one
thread at a time.
Make sense of render thread #11

Clean up RenderContext and its usage by the Renderer.
RenderResources: Break up Mesh into VertexBuffer and IndexBuffer.

This allows vertex buffers to be set per attribute from outside the renderer
without generating a new mesh with all its required buffers.