Eliminate arg array assembly in sub call code.

Instead, we use invokedynamic to do it, which reduces the amount of
code we generate for sub argument passing. Also should hopefully give
better performance, since we're delegating this assembly work to the
combinators provided by the JVM, which presumably it knows how to work
with efficiently.
Fix invokedynamic handling of lexotic.
Make return code-gen something more optimizable.