This initial implementation is rather rough, but it paves the way for
using GL::Renderer. It uses a lot of VBOs and is generally less efficient
than it could, but those will be addressed in the near future. All
widgets haven't been tested, but the helloworld example works.