charm: add support for reading bundle directories

Bundle archive support is hinted at but not
yet implemented.

Also add a drive-by fix for the fact that ReadCharm
could return a non-nil Charm on error.
That's a very generic description of any interface. Here I would prefer a description of what a bundle is as logical type, how it shall be used, what's the intention behind it. And also documentations for the methods.