Make EC2InstanceDisappeared a subclass of Exception
Fix wrong constructor call
Give s3 bucket an arn option as default value for now.
Add LGPLv3 license
Whitespace
Ensure idempotency in creating EC2 instances

This ensures that we don't "lose" instances if ‘charon deploy’ is
interrupted after EC2 creates the instance but before we register it
in the database.  Either the user runs ‘charon deploy’ again, in which
case EC2 returns the same instance due to the client token, or the
user runs ‘charon destroy’, in which case we destroy the instance by
looking it up by client token.

LRM-9563
Generate the EC2 host key only once

Otherwise idempotent instance creation won't work correctly (we'll use
a public key that doesn't match the private key used to launch the
instance).
Check whether the EC2 region name is valid