Attempt at splitting out and cleaning up the custom multi inputs commit.

This has two critical changes in it:
 - Multi-inputs that pass via a in memory map rather than stringified in config.
 - Combines splits smaller than block size.

Not sure if it's worth the effort of extracting this `groupBy` logic (and delaying the `ProxyInputSplit` creation until after) and writing a `spec` for it? Might not buy us much.