Actions() schema getter added to Charm interface.

BZR commit history for this change has been lost, but types that
implement Charm now must also implement an Actions() method.  This
method should typically retrieve the charm.Actions value from the type.

The Actions is also now stored in, and properly retrieved from the Charm
documents in State.
charm.ReadActionsYaml now uses a transform rather than in-place map editor to strip map[interface{}]interface{} values into usable map[string]interface{}s.  A few tests have been added and other minor fixes applied.
Added better test cases for map[interface{}] cleaner.
New cleanse function replaces all functionality of previous recursion.
Removed some spurious tests from charm/charm_test.go
Merge pull request #42 from binary132/charm-interface-actions-fixes

Changes:
 - charm/actions.go stripBadInterfaces now simplified into a "cleanse" function.
 - Better tests added for cleanse.
 - A few excess tests removed from charm_test.go.
state/api{,server}: more FullStatus API data

The FullStatus client API response now includes a new Relations field
containing relation and endpoint data.

Machines and units now also have a StatusData map in the FullStatus
response which holds extra status information that a client may choose
to use when displaying status. This was already being created but not
passed through the client API. The returned StatusData map is
whitelisted to prevent unintentional leakage of internal-only data of
over the API.

The client API test scenario has been extended to include a case of a
unit with an error with extra status data included.

Apart from providing opportunities for showing more detail in juju
status output generally, these new items will be used to display
relation details in the "juju status" output when a relation hook
fails (LP #1194481). This change will be done in a different branch.
Merge pull request #19 from mjs/1194481-relation_name_in_status.0

The FullStatus client API response now includes a new Relations field
containing relation and endpoint data.

Machines and units now also have a StatusData map in the FullStatus
response which holds extra status information that a client may choose
to use when displaying status. This was already being created but not
passed through the client API. The returned StatusData map is
whitelisted to prevent unintentional leakage of internal-only data of
over the API.

The client API test scenario has been extended to include a case of a
unit with an error with extra status data included.

Apart from providing opportunities for showing more detail in juju
status output generally, these new items will be used to display
relation details in the "juju status" output when a relation hook
fails (LP #1194481). This change will be done in a different branch.
Make captialisation of UserAddCommand fields consistent

This makes thumper happier :)
Merge pull request #45 from mjs/user-add-outpath

Make captialisation of UserAddCommand fields consistent

This makes thumper happier :)