WYOCL: Completely restructured builders + loop filter to process everything upfront, and to actually generate the whole java block, not just the added entries.

This changes the java builder to go WYIL -> CFG/Loopfilter representation -> WYIL -> JVM rather than WYIL -> JVM. This allows for much more complex modifications, such as modifying any part of the byte code from the CFG, not just the contents of the loops. This enabled optimisations such as forall -> for, as well as more complex optimisations such as buffer-bouncing elimination and late-readback