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
Merge branch 'master' into manual-prov-key
Add tests.
Fix conflicts
Fix lp:1339976, lp:1270466 - manual provision, specific key + cloudint use ssh client
Merge pull request #289 from waigani/manual-prov-key

Fixes lp:1339976, lp:1270466 - manual provision, specific key + cloudint use ssh client

### Fix [lp:1270466](https://bugs.launchpad.net/juju-core/+bug/1270466)
Add the following cmd to add-machine:

```shell
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.

#### Tests

The custom key is passed to config.ReadAuthorizedKeys within ProvisionMachine. AuthKeysSuite already tests ReadAuthorizedKeys for passing in and reading specific keys and provisionerSuite already covers ProvisionMachine. As such, no extra tests have been added.

Tests for parsing the new parameters on the command have been added. 

### Fix [lp:1339976](https://bugs.launchpad.net/juju-core/+bug/1339976)
This PR also fixes a bug where cloudinit was not using the ssh client: cloudinit/sshinit/configure.go:63