Update provisioning internals docs

 - Placement directives
 - Availability zone spread

Also, changed to use Markdown format.
use the mgo built in remove rather than a custom one
Merge pull request #679 from voidspace/waitfor-replicaset

Remove the Remove

replicaset/replicaset_test : get rid of extraneous calls to Remove

Remove is a slow operation, and we're seeing spurious failures in CI here. We create a bunch of mongo instances and defer removing them from the replicaset. We destroy them immediately after removal, and then destroy the root, so the Remove is extraneous. This should improve test reliability.
Add a backups abstraction.
Add Create() to the backups abstraction.
cmd/jujud: avoid duplicate code for counting upgrade attempts in upgrade tests
cmd/jujud: avoid duplication in the 2 "success" upgrade test cases
cmd/jujud: shorten upgrade test helper names

Makes the tests a little more readable.
cmd/jujud: rationalise machine & config handling in upgrade tests

These tests have always been a bit confusing because machine-0 and its
config were being stored on the test suite, with various helper
methods magically using them as required. Data associated with other
machines have always been stored in local variables and passed around.

This change makes the data for machine-0 be handled consistently. This
makes for more explicit, clearer tests and has allowed for various
cleanups.
Update port conflict checker to distinguish between conflicts and exact matches.
Merge pull request #667 from tasdomas/fix-existing-port-open

Update port conflict checker to distinguish between conflicts and exact matches.

This is a fix for #1359837 (https://bugs.launchpad.net/juju-core/+bug/1359837).

Opening a port that is already open should not result in an error.
added comment regarding the use of mgo.Remove to cleanup metrics
Merge pull request #681 from mattyw/delete-metric-batch-bulk

use the mgo built in remove rather than a custom one

Previously we had our own function for deleting a metric batch during the Cleanup call. All we need to do is delete metrics based on a certain selection so we can just use collection.Remove() from mgo.
Merge branch 'master' into lp-1336843-wo-jenv-destroy-env
Use values instead of pointers.
Add missing blank lines before comments.
Drop unnecessary type declaration.
apiserver: more logging in tools download GET handler
Add tests for failure cases.
Merge pull request #718 from axw/tools-download-moar-logging

apiserver: more logging in tools download GET handler

This is to help diagnose https://bugs.launchpad.net/juju-core/+bug/1367431