N-way merge first attempt

**DO NOT MERGE**

*This is an early preview with commented out lines, printlns, FIXMEs, bugs and whatnot.*

N-way merge and infrastructure for more complex fan-in operations. Currently following a strictly layered materialization that does not allow cycles. 
Ah, so they exist! I was first looking at head and tail, but they mean something else. Thanks!