change from *string to interface{} for matched values
update TestPointers test case to work with interface{}
added 2 new reducers that work with objects

obj_keys returns all the keys of the matched objects in the group
obj_distinct_keys returns all the distinct keys of the matched objects in the group
fixing TestNilReducers that I broke accidentally
added reducer distinct

distinct works like identity, but removes duplicate values
if returned value is array or object it is omitted
if returned value is numeric it becomes a string