Fail fast(er) when AWS spot creation errors detected

The current spot creation process is pretty dumb when it comes to AWS errors - for the majority of the error cases it retries for 20 minutes before throwing an error.

This PR implements a set of changes that enable faster failing:

1.  Only wait `total_spot_instance_request_wait_time()` == 5 minutes in total.
2.  Fail immediately if `spot_request_status[:state] == 'failed'`  (spot requests never recover from this state)
3.  Fail immediately if `spot_request_status[:status][:code] == 'price-too-low'` (it's highly unlikely that spot requests will recover from this state)

Failure looks like this:
```
  Started creating bound missing vms > main/eu-west-1a/public. Failed: VM spot instance creation failed because bid price is too low: {:tag_set=>[], :spot_instance_request_id=>"sir-4f72563c", :spot_price=>"0.010000", :type=>"one-time", :state=>"open", :status=>{:code=>"price-too-low", :update_time=>2014-05-23 06:15:01 UTC, :message=>"Your Spot request price of 0.01 is lower than the minimum required Spot request fulfillment price of 0.0201."}, :launch_specification=>{:group_set=>[{:group_id=>"sg-3c102448", :group_name=>"default"}], :block_device_mapping=>[], :network_interface_set=>[{:security_group_id=>[], :private_ip_addresses_set=>[], :device_index=>0, :subnet_id=>"subnet-7fa65b1a", :private_ip_address=>"10.13.1.25", :group_set=>{:item=>{:group_id=>"sg-b55194d0"}}}], :image_id=>"ami-4f08c838", :key_name=>"labs-commander-2014-05-02", :instance_type=>"r3.large", :placement=>{:availability_zone=>"eu-west-1a"}, :monitoring=>{:enabled=>"false"}}, :create_time=>2014-05-23 06:13:10 UTC, :product_description=>"Linux/UNIX"} (00:02:02)
```
![image](https://cloud.githubusercontent.com/assets/227505/3064364/e883f200-e251-11e3-9033-966b9a3f9169.png)

Success is now "green" in the AWS spot console
![image](https://cloud.githubusercontent.com/assets/227505/3064379/00c4199e-e252-11e3-9b40-97c15c2a7f60.png)