Added basic doc for HA
Added singleton and voting sections and corrected

I addressed several redaction issues and added sections for
voting and singleton workers as commented by @rogpeppe
Update to use new base txn struct
Merge branch 'master' of https://github.com/juju/juju into environ-resource-catalogs
Introduce new txn package and move transaction functionality from state
Made gramatical corrections suggested by @mjs
Revert resource catalog wor as this will be done downstream from the changes in this branch

This reverts commit 3f07858066fca5e9b5c167616988d7d87a618c4f.
Merge trunk and fix conflicts
Remore some defers
added dry run support for upgrade-juju
Remove hardcoded paths

* added helper functions to return variables for system we are running on
* removed hardcoded paths and socket type
Introduce the changes to track a Request.Version field, add tests in the json codec.
Change the MethodCaller function into a FindMethod function that takes a version parameter.

This should let us end up with it behind an interface, and give us both Serve and ServeFinder.
Change rpcreflect.MethodCaller to be an interface.
And reimplement the CustomCaller as CustomMethodFinder using that new interface.
found something with go vet
test suite is happy with a new MethodFinder implemenation.
I wasn't able to get 'InterfaceMethods' to work the way we want, because
they always fundamentally get unwrapped, but that is ok since it still
works better for us.
That is the last of the RPC changes that aren't the registry itself
Finish implementing a FacadeRegistry type and exposing it.

Rather than using utils/registry.TypedNameVersion because utils has been
moved anyway, and we only had one genuine user of it.
simplified upgradejuju dry run test
move over all of the API facades to the new structure, still needs thorough testing.