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.

The actual input paths have already been computed before this so it doesn't matter at this point. For comparison, the CombinedFileInputFormat does something pretty similar.