Fixed lp:1308146 -  charm config options with $ and . in the names now work
Merge pull request #786 from dimitern/lp-1308146-escape-charm-config-in-state

Fixed lp:1308146 -  charm config options with $ and . in the names now work

Since local charms can be uploaded via the API server, this issue was
introduced: charms with config options having "$" and/or "." in their
names caused notOkForStorage error from mongodb when trying to save
the charm config into the charms collection. See http://pad.lv/1308146.

Service settings were already treated properly (escaping $ and . on the
way into mongo and unescaping on the way out), so the fix uses the same
approach.

Tested live with a local environment and added a unit test for it.
Break pre-migration environment UUID chicken-and-egg scenerio

Multi-env state server related migration steps were relying on
functionality that needed upgrade steps to have run (so that
st.Environment() worked). This hack does just enough to allow to let
the upgrade steps run on the master state server.

Fixes LP #1370635.
Merge pull request #787 from mjs/stateserverinfo-uuid-premigration-hack

Break pre-migration environment UUID chicken-and-egg scenerio

Multi-env state server related migration steps were relying on functionality that needed upgrade steps to have run (so that st.Environment() worked). This hack does just enough to allow to let the upgrade steps run on the master state server.

This fixes LP #1370635.

@howbazaar may have a view on how to solve this differently but this fix solves the upgrade issue seen in CI and by users until he's back in.

http://reviews.vapour.ws/r/56/diff/
FirewallerAPIV1 implemented; tests improved