JcloudsLocation: destroy VM if throwing exception in obtain

- Adds config DESTROY_ON_FAILURE to say whether to destroy the VM
  (which is not currently accessible to the caller in the event of
  failure, because obtain() throws an exception that does not
  contain the machine details).
- Fixes issue where VMs left running after live tests have been run
Tidy JcloudsUtil.getFirstReachableAddress
fix sandbox FederatingManagementContext compile error
Adds JcloudsLoginLiveTest

- for testing various ssh key / password combinations in the config
JcloudsLocation: using password for login

- extract credentials from AdminAccess if that was used to set up the
  user.
- don't tell jclouds to lockSsh if using password-based login
  (as that disables password-login!)
- re-enable JcloudsLoginLiveTests
Jclouds computeService cache: only reuse if same provider

- include provider+identity+credential in cache key, so only
  reuses the computeService if it really is for the desired provider!
JcloudsLocation: incorporate review comments

- remove duplication in two exception blocks
Merge pull request #866 from aledsage/fix/jclouds-location-login-and-termination

Fix: jclouds location login, and termination