Start refactoring AlWrapper
Continue refactoring wrapper

AlWrapper does not actually need to exist as an object. Having the lua_State is enough.
Add retain parameter to al_wrapper_invoke_ctor()
Update model_shape for new wrapper interface
Update widget for new wrapper interface
Update host with wrapper changes
Add nresults parameter to al_script_call()
Construct wrapped objects correctly
type_name no longer required for set_prototype()
Add al_wrapper_free_objects()

Wrapped systems free their own objects before they free themselves
Make sure _al_widget_free() can be called after al_widget_systems_free()
No need to free wrapper or wrapped objects

These will be cleaned up when the lua_State is closed
Remove retain parameter from al_wrapper_invoke_ctor()

If not retained by invoke_ctor(), Lua has no references to the new userdata and it could be claimed by GC.
Add documentation for wrapper.h
Create AlWrappedType as user data so it gets freed
Merge branch 'wrapper-refactor' into master
Integrate AlVars with lua_State

Vars accessed through lua_State, no need to free
Integrate AlCommands with lua_State

Behave more like a Lua module. Command registration not necessary. Accessed through lua_State, no need to free.
Add documentation for data.h
Add documentation for common.h