charm: add BundleData, parser and Verify method.

This is the start of the bundle specification discussed at https://docs.google.com/document/d/1SF8hTBi6oVbki8V__beNij6wnQU-5cm6PZsy5gf0j_Y
> So this is saying to place it on 'machine 0' which in this case is the one mediawiki is
> created on, and mediawiki/0 which is the first unit of mediawiki? Are both specifying the
> same thing really. The location of mediawiki/0 will be machine 0?

The first unit of the mediawiki service will be created on a new machine because
it specifies no placement (and "new" is defined to be the default in that case)

So machine 0 is different from mediawiki/0 - it's the machine that's defined
as machine 0 in the machines section, which *may* be the same machine
as mediawiki/0, but only if mediawiki places its first unit on machine 0.

AFAIK it's not OK to have duplicate keys in YAML. A list seems like the right
thing to me here.