Call function

Resolves #605.

Split up into separate commits for easier reviewing, but will push a squashed patch.

The interesting discussions happened in #605 already, so I hope this patch series is mostly boring.

@rocallahan care to take a look?  I'm not super familiar with the new scaffolding you guys have been putting in place for x64, so the register/void* usage here might want closer review.

There's a list of things I've punted, which I'll file here in a minute.