Revert "Started work on virtual functions/thunks"

This reverts commit 49823d739644e7f375173041480abe0b22670152.
Revert "Revert "Started work on virtual functions/thunks""

This reverts commit eabe6c3f174504cbd13dcb3c8566b3009e265d86.
Made a bunch of ABI changes, mostly, and implemented generalized thunking. Only 19 test failures left.