Avoid using boost::any in MWWorld::Ptr

Reduces dependency on Boost, and should improve performance a bit when
copying or constructing Ptr objects.
Don't store the type name string in the Ptr

This should get rid of all heap allocations caused by constructing or copying
Ptr objects.
Move common LiveCellRef fields to the base class
Remove some unnecessary fields from Ptr
Use dynamic_cast to get the LiveCellRef
Small header cleanup
Throw an exception when trying to get an empty Ptr's type
Merge remote-tracking branch 'zini/master' into ptr-improvements

Conflicts:
	apps/openmw/mwworld/containerstore.cpp
Merge remote-tracking branch 'zini/master' into ptr-improvements
Merge remote-tracking branch 'zini/master' into ptr-improvements
Store the object class in the LiveCellRef