JCLOUDS-707: Improve SSH key pair creation in DigitalOcean

https://issues.apache.org/jira/browse/JCLOUDS-707

The SSH key pair creation  in DigitalOcean has been improved to avoid having multiple public keys with the same fingerprint:

* Create the SSH key pairs before creating the nodes.
* Only auto-generate key pairs if the user has not configured a public key.
* If the user has provided a public key, try to find one with the same fingerprint and reuse it.
* To make the migration to v2 easier, now the fingerprint of the public key is used for the name of the key pair.
Just checking...is this mutually exclusive with the option above? If so, how about:
```
if (options.getRunScript() != null) {
   ...
}

If (!Strings.isNullOrEmpty(options.getPublicKey())) {
   ...
} else if (options.getSshKeyIds().isEmpty() && options.getShouldAutoCreateKeyPair()) {
   ...
}
```
?