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.

I'm assuming this wouldn't be called much? (eg. we don't need to cache it?)