Initial merge into juju repository

This PR is the initial merge of previous work into the juju/jujusvg repository.
// Canvas holds the parsed form of a bundle.

?