Fail fast(er) when AWS spot creation errors detected
Explicitly cancel spot request when erroring; rather than having AWS expire it for you.

Reduces the chance of having rogue spot requests
Mark spot creation VMCreationFailed errors as not retryable
Extract AWS spot instance logic to SpotManager class and simplify related tests
Refactor to simplify SpotManager::wait_for_spot_instance_request_to_be_active
Add BOSH_AWS_LIFECYCLE_MANUAL_IP to lifecycle tests

Signed-off-by: Kris Hicks <krishicks@gmail.com>
Refactor AWS spot manager + tests

Signed-off-by: Kris Hicks <krishicks@gmail.com>
Wrap CPI error in VMCreationFailed error

Signed-off-by: Kris Hicks <krishicks@gmail.com>