Rework function representations.

Instead of three pointers, we can fit everything we need in two pointers
and some bitcasting. This allows a fair amount of cleanup in various
places all over. Some highlights:
- No longer any need to store instance pointers in global data
  structure. Free function calls don't need to go through the instance.
- We generate exactly: global forward trampolines; per-module reverse
  trampolines.

Codegen for calls and refcounting is slightly more complicated.