DO NOT MERGE Incremental inliner

**Do not merge this PR yet**, it is obviously in a very rough state.

But now the algorithm should be complete enough that things won't change much anymore, except cleanups. So I'm posting it for the eager interested reader.
OK. `toIterable` or `toStream` then? A local extractor is a bit exaggerated IMHO.