Remove instance_holder dependency on class_rep.
Allow overriding virtual functions per instance.

This changes the way virtual function overrides are fetched so that it
is possible to override them directly on an instance, rather than
creating a derived class in Lua:

  x = X()
  x.virtual_function = function(self) ... end
Merge branch '0.9' to sync with v0.9 release.

* 0.9: (29 commits)
  Respect LUABIND_NO_EXCEPTIONS.
  Fix iterator_policy destruction bug.
  Allow calling luabind::open() more than once.
  docs: Update list of configuration defines.
  docs: Fix spelling.
  docs: Remove VC6/7 from compatible compiler list.
  docs: Add note about raw() being deprecated.
  Fix class_id allocation from DLL.
  Remove double lua_isnil() check in ref_converter.
  Prevent max() macro substitution.
  Remove old unused files accidentally left around.
  Fix placeholder definitions to match changes in Boost 1.39.
  cast_graph::cast() should return the score as int.
  Always use lua_tonumber() for unsigned int/long.
  Accept "nil" in char const* converter.
  docs: Add note about functions returning smart pointers.
  Don't leak cast-graph objects.
  Suppress int->bool warnings on MSVC.
  Don't use lua_tointeger() for unsigned int on MSVC.
  Use lua_pushliteral() where possible.
  ...
docs: fix typo, "base" should be "derived".
Remove dead code.
Fix LUABIND_ERROR_CHECKING conversion bug.
Remove dead code.
Remove tests for removed type traits code.
Add has_policy<> and remove has_yield<>.
Don't construct T* const& types for attribute access.
Add policy to suppress automatic attribute dependency.

Can be used with def_readwrite/def_readonly to suppress the default
dependency policy. This is useful if the attribute is a
pointer/reference that isn't owned by the enclosing class.
Teach adopt() to hold the adopted pointer in custom pointer type.
Add CMake build files
Merge branch '0.9' to sync with 0.9.1 release.

* 0.9:
  Add missing scope::operator=.
  Fix wrapper_base back reference being initialized with wrong value.
  Fix bug where the cast cache would insert with wrong key.
  Fix GCC warning because mpl::size<> is long int.
  Move lua_error out of catch handler to defer longjmp.
  Remove redundant code.
  Add missing #undef N to constructor.hpp.
  Clear up some std::size_t/int confusion and get rid of warnings.
  Remove spurious semicolons. Fix pedantic build on GCC.
  Remove unused code.
  Add define that strips extern "C" {} around Lua includes.
  Fix copy-paste error in object::operator!=.
  Workaround C++0x pair<> constructor with null pointer issue.
Add include that got lost during cleanup.
Proper forward declarations for object wrappers. Now builds on clang!
Merge remote branch 'upstream/master'
Update build for new upstream
Add builds for tests
Slight tweak to cmake build