state: make InferEndpoints take varargs

Most of the callers, usually the tests, were having to construct a []string, just to satisfy the contract of the method.

Make the method take a varargs ...string which is consistent with other Relation methods.
Added versions to Agent API.
Added forgotten params.
Merge branch 'master' of https://github.com/juju/juju into agent-api-new-version-for-networker
Merge branch 'master' of https://github.com/juju/juju into agent-api-new-version-for-networker
Wire up placement directives to EnsureAvailability api
Fix facade version detection
Code revew fixes
Rework how support for legacy installs is handled
state: remove unused return value from backingDoc.remove
Fix client fallback
Merge branch 'master' of https://github.com/juju/juju into agent-api-new-version-for-networker
Fix typos
Merge branch 'master' of https://github.com/juju/juju into agent-api-new-version-for-networker
Minor fixes after first review.
cmd/jujud: upgrade mode end fix

Fixed a case where upgrade mode wasn't being stopped when it
should. This is actually almost impossible to hit in practice but good
to fix anyway.

Added a unit test to cover this case.
Add a juju subcommand for backup.
Add the backups create subcommand.
Clean up names and doc comments.
Adjust to changes in api/backups.