Enhancements to class()

Takes a factory function
Prototypes are dynamic, not just copied
Added tests
Rewritten wrapper to work with full userdata
Vars no longer dependent on wrapper
Updated Widget for use with new wrapper code
Use single *_system_init functions to set up commands, vars, etc
Added helper for registering ctors to wrapper
model_shape uses wrapper and Lua memory
Added extra test for class.lua
Fixed numerous bugs in wrapper
Fixed some bugs in model_shape
Moved model Lua bindings into albase
class works for objects that already have metatables
alice compiles correctly after model changes
Fixed some bugs in widget
Improved wrapper interface
Improved wrapper interface more, no longer using class.lua
Updated derived Widgets to use correct class interface
Make Widget.root a function

The root widget has not been initialised at this point
Makes it more like other getters
Fix bug in cmd_widget_set_model, accepts model as userdata
al_wrapper_free() assumes the lua_State is already closed