allow inlining of more functions

multi-line inlining is now supported (currently triggered by various
simple heuristics)
fix vargs expansion logic during inlining pass when also used a local variable name
abort when trying to inline a function which assigns to a global variable in a different module, since `Mod.X=V` isn't allowed
fix an issue where a global in the inlined ast could be shadowed by a local in the enclosing ast
resolve an issue where inlining was allowed to change the order of evaluation of its arguments if the argument was pure