Allow free functions as member functions

Added the functionality to use free functions with a fitting
first parameter as member functions.
Per access container getPointer and exception catching

When calling into C++, exceptions are caught and translated into Lua
errors.

A containers' get pointer function is called on each access rather than
only when the UserdataShared is created.  This allows any code in the
container that checks pointer validitly to work.