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.
That's not it. Every method can be called either dynamically or statically (with the exception of constructors that can only be called statically; and reflective proxies that can be called only dynamically). The double iteration is necessary.