Initial merge into juju repository

This PR is the initial merge of previous work into the juju/jujusvg repository.
"parsers" isn't a great name for this package - the main identifier that
clients will use. I'm also not entirely sure that it's worth separating
from jujusvg itself.

I think I'd be inclined to make the whole jujusvg API something like this:

    package jujusvg
    type Canvas struct { ... }
    func NewFromBundle(b *charm.BundleData) (*Canvas, error)
    func (c *Canvas) Render(w io.Writer)

Later, a NewFromEnvironment function could be added, taking
some appropriate type, and also returning a *Canvas.