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.