Merge branch 'dw/function-refactoring'
* dw/function-refactoring:
Add interface to explicitly specify signatures.
Deprecate "super()".
Unify construction of Lua and C++ classes.
Rewrite construction code to always just call __init().
Fix destruction of derived Lua classes.
Change derived class name-shadowing rules.
Change super() to always just call the __init() function.
Change constructor signature to include self argument.
Reimplement constructor code.
Add missing include.
Remove old function dispatch code completely.
Fix calling virtual functions without override.
Use new function dispatch code for member functions.
Reimplement the function registration code.