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.
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
Fix typos
state: refactor Storage

- State.Storage() no longer returns an error
- state.Storage no longer has a Close method

Resource lifetime is now managed within each
method call. Get is a special case, where the
returned ReadCloser manages the lifetime of
the mgo session (it is closed when the ReadCloser
is closed).
Change state.Storage usage sites
fix comment, add tests
Fix tests
Merge branch 'master' into ensure-availability-to-2
Fix test
Merge pull request #783 from davecheney/202-state-megawatcher-cleanup

state: remove unused return value from backingDoc.remove
Merge branch 'master' of https://github.com/juju/juju into 198-state-infer-endpoints-takes-varargs
Merge pull request #771 from wallyworld/ensure-availability-to-2

Wire up placement directives to EnsureAvailability api

When "juju ensure-availability --to machine1, machine2" is run, the placement directives are added to the machine template and so are used when the new instance is created. This is similar to how bootstrap works.

The API added by the previous branch needed to be tweaked to hook things up.

Fixes: https://bugs.launchpad.net/juju-core/+bug/1370332

http://reviews.vapour.ws/r/38/
fixed more places where the signature had changed
Merge pull request #735 from davecheney/198-state-infer-endpoints-takes-varargs

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.
Merge pull request #784 from axw/state-storage-refactor

state: refactor Storage

- State.Storage() no longer returns an error
- state.Storage no longer has a Close method

Resource lifetime is now managed within each method call. Get is a special
case, where the returned ReadCloser manages the lifetime of the mgo session
(it is closed when the ReadCloser is closed).