Update provisioning internals docs

 - Placement directives
 - Availability zone spread

Also, changed to use Markdown format.
Factor out cmd testing helpers.
Add an API facade for backups.
Add tests.
Add missing doc comments.
Wrap returned errors with errors.Trace().
Drop the superfluous "Backups" from some names.
Fix a typo.
impl -> backups.
Add the newMeta() test helper and use it.
Remove unnecessary XXX comments.
Use the more canonical form for an empty value.
Merge pull request #734 from ericsnowcurrently/cmd-testing-helpers

Factor out cmd testing helpers.

For the backups CLI I'm adding the subcommands in a subpackage of cmd/juju.  For that to work, I need some of the testing helpers in cmd/juju to live in their own package.  This patch makes that happen.  This is basically a copy-and-paste patch.
state: don't allow SetEnvironAgentVersion if state server upgrades are in progress

An upgrade isn't going to be able to complete if an upgradeInfo
document for another upgrade is still active.
multiline -> singleline.
state: implemented AbortCurrentUpgrade

This will be used to allow users to recover if a state server dies
during an upgrade, leaving a current UpgradeInfo in
place.
Merge pull request #596 from axw/provisioning-doc-az

Update provisioning internals docs

- Placement directives
 - Availability zone spread

Also, changed to use Markdown format.
Merge pull request #724 from mjs/no-SetEnvironAgentVersion-if-upgrading

state: don't allow SetEnvironAgentVersion if state server upgrades are in progress

An upgrade isn't going to be able to complete if an upgradeInfo document for another upgrade is still active.
Merge pull request #731 from ericsnowcurrently/backups-apiserver

Add a backups facade to the state API server, along with a Create method.

This patch adds the new facade for backups, structured to support the various backups-related API methods that will be added.  An initial method, "Create", is also added which creates a new backup and returns the resulting metadata.  The API client side will be handled in a subsequent PR (see https://github.com/ericsnowcurrently/juju/pull/5).
Merge pull request #726 from mjs/AbortUpgradeInfo

state: implemented AbortUpgradeInfo

This will be used to allow users to recover if a state server dies during an upgrade, leaving a current UpgradeInfo in place.