Fixes lp:1339976, lp:1270466

lp:1270466
Add the following cmd to add-machine:

juju add-machine ssh:user@10.10.0.3 -i ~/myid.pub

where -i is a specific identity key used to ssh into the machine. The key is also stored in the machine for future logins.

lp:1339976
This PR also fixes a bug where cloudinit was not using the ssh client.
Merge branch 'master' of https://github.com/juju/juju into manual-prov-key

Conflicts:
	cmd/juju/addmachine.go
	cmd/juju/addmachine_test.go
Merge branch 'master' of https://github.com/juju/juju into manual-prov-key
Merge branch 'master' of https://github.com/juju/juju into manual-prov-key
Merge branch 'master' of https://github.com/juju/juju into manual-prov-key
Merge branch 'master' of github.com:waigani/juju into manual-prov-key
Don't expose state port for openstack provider
state/apiserver/usermanager: fix potential panic
state/apiserver: derive svrRoot authorier from state.Entity
Make FakeAuthorizer.AuthClient logic the same as apiserver.srvRoot
AuthUnitAgent now derives from fa.Tag
Revert "AuthUnitAgent now derives from fa.Tag"

This reverts commit 000b546cd121991834c552ff20fa4b202a0c122a.
Revert "Make FakeAuthorizer.AuthClient logic the same as apiserver.srvRoot"

This reverts commit 57bb51a8ab3b6032f377627a003765aa315a6f51.
state/apiserver/testing: remove unused field
Do not open state port. ec2 and azure.
Do not open state port. ec2 and azure.
Remove last mention of StatePort in azure provider tests
Merge branch 'master' into manual-prov-key
Moved requirements to the top and added table of contents.
Add tests.