Skeleton implementation of ec2 AllocateAddress
Temp fix for pushing
Merge branch 'master' into ec2-allocate-address
Temp fix for pushing
Merge
Trivial implementation of ec2 AllocateAddress
Minor fixes
Merge branch 'master' into ec2-allocate-address
Get id of first network interface for the instance
Use attempt strategy to retry API calls
Skeleton test
Adding errors file
Stub for handling IP address unavailable error
Fixes bug #1364939

- Added RetryableCreationError type to the instance/instance.go, which indicates that something went
wrong during instance creationg, but the cleanup was successful and instance creation can safely be
retried
- Added transientErrorInjection channel to the dummy provider, which enables tests to
patch this variable to induce errors in instance creation (see PatchTransientErrorInjectionChannel function
and StartInstance function in provider/dummy/environs.go
- Added retry once code to the provisioner (provisioner_task.go) in case the RetryableCreationError
is received
- Added tests to the provisioner
- In the lxc.go added a destroy call if a container fails to start - we need to cleanup the environment
in case of errors - and a RetryableCreationError is returned
- Added tests to the lxc (via an error injection channel)
Fixes wrt cmars' review
More elegant error handling
Typo fix
Minor fix
Fixes wrt comments from anastasiamac
Fixes wrt comments from fwereade

- removed changes in the lxc package -> those will be in the following PR
- added NewRetryableCreationError function to the instance.go
- fixed comments in the provisioner_test.go