testing: fix MockCharmStore methods

Fixes #69

The code inside juju expects that these methods behave like setters.

Also add a mutex to make updating these values safe for multiple goroutines.
Merge pull request #70 from juju/100-fix-issue-69

testing: fix MockCharmStore methods
added builtin metric to metered charm
Merge pull request #72 from mattyw/add-builtin-metric

added builtin metric to metered charm
testing: make repo explicit

We move all the testing charms into a charm repository
intended only for internal use of the charm package.

This will stop external packages creating highly
fragile tests that rely on specific details of the charms
in the charm package's charm repository.
Merge pull request #73 from rogpeppe/027-explicit-repo

testing: make repo explicit
testing: add NewCharm function
Merge pull request #74 from rogpeppe/028-testing-newcharm

testing: add NewCharm function
implement YAML marshaling
Merge pull request #75 from rogpeppe/029-yaml-marshal

implement YAML marshaling
make Config marshal to YAML nicely
Merge pull request #76 from rogpeppe/030-config-yaml-marshal

make Config marshal to YAML nicely
disallow config.yaml with no options entry
Merge pull request #78 from rogpeppe/031-require-config-options

disallow config.yaml with no options entry