Metrics collection

This script will collect a DC's total desired and actual when run. 

**TODO**:
- [x] Collect pending also
- [ ] Tests
- [ ] Dump the data to Cloud metrics
I know I previously said something about explaining the sort order, but I think I mostly said as a comment where the batch algorithm is, but I think I've changed my mind a bit about the format.

Again, this is non-blocking, because it's for idiots like me who can never remember how this works.  :)  I think it would make more sense to describe the order in which data is returned by cass by default, which if understood makes the algorithm below make perfect sense.

[The data returned is in sorted order of the partition key (first column of the primary key) first, because Cass rows or ordered by the hash value of partition key, which is calculated by `token(partition key)`](http://www.datastax.com/documentation/cql/3.0/cql/cql_using/paging_c.html).   [Then within each partition key it is stored in sorted clustering column order](https://cassandra.apache.org/doc/cql3/CQL.html).  The default order data is returned is the same as the order in which data is stored.

Sample data would be:

    token("tenantId") | "tenantId" | "groupId"
    -----------------------------------------------------
    hash1                  | Q              | A
    hash2                  | K             | E
    hash2                  | K             | F
    hash2                  | K             | G
    hash3                  | M            | C