Switch to buffer streaming/mapping

It is probably a performance hit for static text with a static layout but it
makes it easy to dynamically insert extra objects such as a background quad,
ellipsis characters, etc. Once buffer textures are used for glyph metrics
the glyph instance will go down making this approach more reasonable.