Rename stoppable to drained

Oon the basis of Davids yammer post, which Ive copied in below.

N.B. We may also want to hard code stoppable to true in the short term for the purposes of orc, if what apps are
     reporting to us is not useful.

David's text:
I now think that t0m's original suggestion is correct in that we should change Orc, but I have a twist. /info/stoppable was concieved to cater for apps like TIMConnect that hold state in memory and out-of-band. The atlantic team implemented it to mean "are there active connections" in Merc which is fine.. but I think any in-band communication can be tracked in the load balancers easier (and we don;t need to implement for every app).
So I propose that the next work to be done on Orc is to implement an agent on the loadbalancers and combine this information with the rest of the model. Waiting for connections to drain can be done by inspecting the number of active connections foreach instance in the load balancer.
This was always a next step to get rid of the arbitrary sleeps in Orc, but this seems like a better option than changing the app?
Make actions get passed previous actions

This allows the wait actions to work out when they started waiting
and thus control their own timeout.

It also means that we can teach UpdateVersionAction that if it tries
more than a couple of times, it should give up, as the app is
seemingly never going to come up.

Once we've done that, we can fail faster, i.e. whenever we get an error
reported from an action, and we can change the action running loop
to be infinite (or nearer infinite)