Add utils, define user period metric classes, and having metrics utilize these

- In user_metric.utils added factories for dynamically constructed named tuples and enumerations

- In user_metrics.metrics.users added UserMetricPeriod classes.  These define the time range over which metrics are computed.

- Multi-threading for edit count (and edit rate by proxy) metric

- Building in the ability to compute metrics (bytes added and edit count so far) relative to event tunable time ranges