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
The machines are defined in the Machines map inside the bundle data.
The Machines map is keyed by the machine id.

This is documented, but perhaps you have a suggestion for how it could
be more obviously stated?