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
It's a Go standard idiom to create errors starting with a lower case and with no period, so that they can easily be combined with other errors.
I'd prefer to do things in a standard way, at least to start with.

It would not be hard for a presentation layer to add the capitalisation and period when desired.