Revert to using curl to download tools

aria2 is in universe, which would preclude
juju from entering main. aria2 is also not
available on the test machines, and broke
CI. Revert to using curl, but cycle through
the URLs until one succeeds.

Fixes https://bugs.launchpad.net/juju-core/+bug/1364438
Merge pull request #661 from axw/lp1364438-curl-download-tools

Revert to using curl to download tools

aria2 is in universe, which would preclude
juju from entering main. aria2 is also not
available on the test machines, and broke
CI. Revert to using curl, but cycle through
the URLs until one succeeds.

Fixes https://bugs.launchpad.net/juju-core/+bug/1364438
action-set: a jujuc command for Actions to send values back to state

action-set permits action hooks to define an arbitrary map of params
which will be returned to the state server at the end of the Action.
action-set multiple invocation tests and panics fixed
action-set: a jujuc command for Actions to send values back to state

Addressed fwereade's concerns for PR 415.
action-set: a jujuc command for Actions to send values back to state

This commit moves the Action results update method into the Context
implementation, so that client code is not changing the results map
on its own.
action-set PR tweaks

Addressed:
 - need to keep Action results map segregated from jujuc
 - testing Context interface mock to support this change
 - removed old Context methods
 - changed actionResults inner "error" type to string rather than error
Now tests action results interleave in context
action-set uniter test added

action-set now has a test in worker/uniter/uniter.  This test
demonstrates how action-set overwrites existing values in the
results map.
worker/uniter finalizeContext refactor for ActionFinish