Use an alarm signal to handle instance creation timeout.

This was written in response to an EC2 API failure on 2 Jan 2014 which resulted
in EC2 responding 'InvalidInstanceID.NotFound' for extended (1 hour+) periods
of time.  This unexpected API behavior meant that wait_timeout did not timeout
during failing launches.