Order deploy tasks by host groups

Riff-Raff needs to be more intelligent about the order it processes hosts.  Historically, it has used the ordering in the deployinfo file.  Now we finally make use of the 'group' tag on each host.  This tag indicates a logical cluster of nodes of which only one should be taken out of service at any one point in time.

The tasks are now reordered to rotate through each of the groups so we alternate between data centers, regions or availability zones as appropriate.

The hosts in the deployment info tab are shown in their expected execution order.

This was originally requested by identity so that their deploys don't take a whole DC down at once.