First sketch of extracted map/reduce operations

Problem with Reduce is that currently it's bound to batch and operates on Stream, but not Composable, which makes it all a bit more difficult to compose.