Implement synchronous bootstrap
Implement synchronous bootstrap

environs/manual has been further refactored to
split the "manual cloud-init over SSH" out into
a separate package (cloudinit/sshinit).

provider/common now starts an instance with the
base cloud-init only, then waits for a DNS name,
waits to be able to connect via SSH, and then
defers to sshinit to execute the remaining
cloud-init steps.

Fixes #1224230

rogpeppe/juju-utils,dimitern/utils