Implement the charm-related API.

Also move MgoTestPackage suite registration out from api_test to its
own package_test.go.
Agree on being clearer without additional nesting. GetMetadata does return an empty map, however, it is far from an NOP function when includes is empty. But we might leave it just as it is for now, it's not a big deal.