Core changes to store tools in state
Search, download and cache tools from public/configured tools sources

FindTools will now search simplestreams unless an exact match is
being performed and that is found in toolstorage. Tools found in
toolstorage will take precedence over those in simplestreams.

If a tools version is requested for download and it is not in
toolstorage already, the API server will search for it in simplestreams,
download it, and cache it in toolstorage before returning it to
the client.

Also, we now once again (as in 1.20) only clone tools on upload if
requested. We will drop the "AddToolsAlias" function from toolstorage.
cmd/jujud: clone tools, don't alias metadata
Fix apiserver tools serving
Fix tests
cmd/jujud: don't redirect bootstrap-state logs

Redirecting bootstrap logs breaks bootstrap error reporting.

Fixes https://bugs.launchpad.net/juju-core/+bug/1366650
cmd/jujud: log stack trace on panic
cmd/jujud: read tools into memory before adding to storage
s/ToolsStorager/ToolsStorageGetter/g
state/toolstorage: remove AddToolsAlias

We're no longer aliasing, just adding cloned
tarballs for each version, which will be
de-duplicated by managed storage. This will
simplify the removal of old tarballs from
storage.
apiserver/common: address review comments

- Fix comments
- Bail early if AllMetadata returns an error
- Improve FindTools (API server) coverage
provider/openstack: update goose

Fixes LP #1365480
apiserver: improve tools download test coverage
Merge pull request #698 from axw/lp1366650-bootstrap-no-log-redirection

cmd/jujud: don't redirect bootstrap-state logs

Redirecting bootstrap logs breaks bootstrap error reporting.

Fixes https://bugs.launchpad.net/juju-core/+bug/1366650
Call SetAPIHostPorts in JujuConnSuite

Various tests now need API host ports to
be set in State so they can construct
tools URLs.
Merge pull request #703 from davecheney/195-update-to-latest-goose

provider/openstack: update goose

Fixes LP #1365480
state: added functionality for aborting upgrades

UpgradeInfo now has an Abort method for cancelling the current
upgrade.
Use backticks to clean up UpgradeInfo tests
Merge pull request #699 from mjs/upgrade-abort

state: added functionality for aborting upgrades

UpgradeInfo now has an Abort method for cancelling the current upgrade.
Address review comments