Remove unused detail::construct_implicit().
Remove dependency on Boost.ScopeExit.
Update README.
Add support for "light" functions (untested!).

These are functions with custom converters but with a static function pointer.

The terminology really needs to be cleared up, currently we have:

Light function:
    1. A Lua function without upvalues (light C function).
    2. A C++ function which can be stored in void*, thus pushed with
       lua_pushlightuserdata.
    3. A Lua function which refers to a statically bound C++ function (this).

Also, raw function and static are synonyms for the 1. meaning.
Fix wrong upvalue index for stored converters.
function_dispatch: Pass builtin callables by value.

Required for light functions because a non-type template parameter cannot be
passed as lvalue reference.
light_converted_function: Fix ctor template parameters.
Add default_argument converter.
default_constructed() returned reference to local.