First attempt at supporting Text in Backend
Text support.

This is not quite as good as the cairo version because browsers don't
yet implement TextMetrics with anything other than width. As a result
we're forced to use a dirty hack that can result in slightly less pretty
diagrams.

One big change is that we now use the Render monad to pass around the
state of whether we should fill or not.