Revert from mapreduce to aggregate

Perhaps it would work better if we use a generic for the base method, something along the lines of this:

```java
    @SuppressWarnings("unchecked")
    protected <T> List<T> getValuesByKey(String fromKey, Iterable<DBObject> dbos) {
        List<T> results = new LinkedList<T>();
        for (DBObject obj : dbos) {
            results.add((T) obj.get(fromKey));
        }
        return results;
    }
```