Cherry-picked the libdeng2 DENG2_PRIVATE auto_ptr commit
libdeng2: Trying out a DENG2_PRIVATE compatible with old compilers

std::auto_ptr<> with an undefined struct is not tolerated by some
compilers. Now DENG2_PRIVATE uses a custom PrivateAutoPtr class that
reinterprets the unknown instance type as an IPrivate when deleting.
Fixed: Applied DENG2_PIMPL macros to private instances

When using DENG2_PRIVATE, it is mandatory to derive the private
Instance from de::IPrivate or de::Private<>.
Merge branch 'master' into pimpl-autoptr
libdeng2: Cleanup
Fixed: Reapplied DENG2_PRIVATE to the Uri class
Documentation|libdeng2: Pimpl macros
Merge branch 'pimpl-autoptr'