Merge branch 'dw/recursive-dispatcher'
* dw/recursive-dispatcher:
Fix tests. Need to contain subconverters.
Fix builtin converter test. All converters need both conversion stages.
Make shared_ptr_converter stateful.
Make const_pointer_converter stateful.
Make adopt_policy::match() stateful.
Use lua_rawgeti() instead of lua_pushnumber, lua_rawget pair.
Reduce the number of API calls for numeric converters.
Cache conversion result from the scoring stage.
Inline more calls when invoking functions. Improves code on GCC.
Test user defined converter that consumes 2 parameters.
Automatically convert lua_State* arguments.
Compute argument indices with converters.
New recursive overload resolver.
Don't try to return void* from Lua in test.
Use luaL_ref/luaL_unref instead of old ref() mechanism.
Add default converter for boost::shared_ptr<>.
New instance storage implementation. Cleaner and faster.
New instance holders. Can hold instance by any pointer type.
Replace include with forward declaration.