Spread the metrics better across kafka partitions

The previous code used the metric timestamp as the key for routing across
the kafka partitions. Since the timestamp is only accurate to the
second and we are expection > 20k metrics per second, this did not use
the kafka partitions well. The new code uses the timestamp plus
the count of metrics seen so far as the key. Performance tests
show a much better distribution

The meter metrics.published was changed to really count all metrics
instead of batches as it did previously

A new meter batches.published was created that counts the batches.

Change-Id: If2c58a19b2ae0056134385617a11877bb7f936e6
Merge "Spread the metrics better across kafka partitions"