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.
Yes. This is only an internal class to "pass additional information to the DigitalOceanComputeServiceAdapter" and keeping its signature (and without doing ugly things with static/singleton/thread-local stuff). The class is the standard template with the addition of the auto-generated key pair ids, so we can clean the up properly.