We'll need to use the same sort of infrastructure as for stdfunction wrapping, but:
- we'll need to generate trampolines for each virtual method in the base class we're inheriting from
- the user will need to pass a virtual function table in to the generated constructors