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.
No. The point here is that if in the previous if a key pair is automatically generated, its private key key be populated to the options, so it can be used to authenticate. That's why this check is made afterwards. If a key pair is auto-generated, the private key will always be populated, so there is no risk of leaving created key pairs and then throwing an exception.