REF: move Block construction in groupby aggregation to internals
Possible precursor for https://github.com/pandas-dev/pandas/pull/39885
For the current BlockManager code, this doesn't actually simplify that much in the groupby code (it *does* remove accessing the blocks and an explicit BlockManager(..) call, so removing BlockManager internals). 

In principle I could re-use `BlockManager.apply` inside `BlockManager.grouped_reduce`, but I don't find it very clean to use `apply` for something for something that doesn't generate a same-shape BlockManager (it basically now creates an invalid BlockManager object because the length of the index is not correct).

But it will probably make it a bit cleaner to add ArrayManager support.  lgtm. some failing tests :->