combine rows in memory, lazy create extractor

* Lazily create extractor to connection to the db until necessary
* Combine rows as follows (username and date are key columns):

```python
 rows = [dict(username="u1", date="d1", indicator_a="1"),
             dict(username="u1", date="d1", indicator_a="2"),
             dict(username="u2", date="d1", indicator_a="1"),
             dict(username="u2", date="d1", indicator_b="1")]

munged = util.combine_rows(rows, mapping)

expected = [dict(username="u1", date="d1", indicator_a="2"),
                  dict(username="u2", date="d1", indicator_a="1", indicator_b="1")]
```