Increase timeout on RightScale 'destroy array' integration tests.

The failures we've had with this test are exclusively due to RightScale
task-scheduling taking a few minhtes longer than normal. Its not right
to fail the test just because RightScale is being slow, so we are
increasing the timeout here to something more reasonable.

Bugfix: Don't return from terminate method  until 'wait_for_task' has finished!

This is a silly bug. I forgot to yield here, which meant we kicked
the 'wait_for_task' method onto the ioloop, but never waited for it to
finish before coming out of the threaded method.

This only 'worked' because the Destroy actor waited until the array had
zero instnaces before continuing, so it effectively waited until the
task finished anyways.
Refactor the terminate server array instances method and Destroy actor.

Because we call terminate_server_instances() method inside a thread, its
not part of the IOLoop and cannot yield/wait for the wait_for_task()
method to complete.

Instead, we need to have the Destroy() actor do the yield.