* - modify Shape2D so that it manages its own vertex buffer
* - fix the last commit failing on Shape2Ds that were modified after AddShape was called
* - make buffers an array of F2DVertexBuffers instead of an array of pointers
* - fix AddShape with the same VBO but different transformation crashing the game
* - formatting fixes
Negative coordinates are treated as "disable scissor", so if some transformation results in something off-screen it needs to be handled before passing it to the backend.