Operators: default __tostring and better error messages.

The default __tostring returns a string containing the constness, the class
name and the object_rep's adress (in this order).

Also add the operator name to the error message. So instead of "No such
operator defined", the error message will now be e.g. "No __add operator
defined."

Also test both in test_operators.
Remove duplicate Lua 5.1 compatibility defines.
Remove remaining get_const_holder definitions.
Allow operators to return multiple values.
Add __tostring for classes.
Disallow direct calls to class and instance metamethods.

The callee trusts the caller to pass a luabind object_rep/class_rep but this
cannot be guaranted if the user can directly call the methods.

Additionally, one would not want to allow the user manually calling __gc.
Static class values: Fix non-string indices and improve error handling.

Make error handling more consistent: Every invalid index will now cause
an error.
  * indices with embedded '\0' which were not found in the default_table would
    lead to a return value of nil. Now error of the form
    "no static '<index until 0>' (followed by embedded 0) in class '<class>'"
    is caused.
  * indices which are not convertible to a string using lua_tostring lead to
    strlen being called with a null pointer and thus to undefined behavior. Now
    an error of the form
    "no static value at <Lua typename>-index in class '<class>'" is caused.
  * other indices not found behave as before, causing an error of the form
    "no static '<index>' in class '<class>'".

If LUABIND_NO_ERROR_CHECKING is defined, in all cases nil will be returned
instead of causing an errror.