Fix misunderstanding on how reduce functionality works

Unit tests still don't work in this commit; need to support
MemberInit expressions in Reduce, and ideally support primitives in
Map as well, then this will function pretty well.
Reduce and Map support both MemberInit and primitive return types