Lift restriction on calling extern C functions, and propagate ABI as part of extern fn type

r? @pcwalton

This in combination with the changes @pcwalton is doing gets us very close to the final design.