Cull instances in order based on availability zone

When using riffraff to deploy elasticsearch it failed at the stage CullElasticSearchInstancesWithTerminationTag:

https://riffraff.gutools.co.uk/deployment/view/335e0ce7-09d9-446a-9a31-b570919970ae

The failure occurs as riffraff currently does not kill the old instances in any particular order, so the availability zones become unbalanced and new instances are launched to correct the imbalance:

![screen shot 2014-10-13 at 16 20 34](https://cloud.githubusercontent.com/assets/3606555/4615855/f2d8cc78-52ed-11e4-9401-49f1cb429510.png)


This change seeks to fix this issue by stopping one instance from each availability zone until all the instances marked for termination have been stopped. This happens in the method cullInOrder, which takes as parameter a list of lists, with each list representing the instances to kill from one availability zone. 

This looks suspect.  When matching against a list, the Nil is on the right-hand end, so

```scala
case otherZones :: Nil => cullInOrder(otherZones)
```