More efficient invocation, add var and fun types, refactor

Now within sight of gcc performance instead of within sight of perl
performance.