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 allowing us to define a machine in the bundle and it's identifiable by the order it appears in the yaml defintiion? e.g. machine 0 is the first machine specified in the MachineSpec? Or is there some other reference?