Porting from the 2.0 to 2.2 series of c++-gtk-utils

The 2.2 series makes few API changes to the 2.0 series. It is mainly intended to enable some bugs to be fixed and simplifications to be made which require ABI rather than API change (by altering object layout), and to provide a generic callable object interface for Callback::post(), start_iowatch(), start_timeout(), Emitter::connect(), Future::fail(), Future::when(), Notifer::connect(), SafeEmitter::connect(), TaskManager::add_task(), TaskManager::make_task_when(), TaskManager::make_task_when_full(), TaskManager::make_task_compose() and Thread::start(), which requires gcc-4.6 or later.

However one transitional API feature has been dropped: the --with-auto-ptr configuration option (intended to provide some source compatibility between the 1.2 and 2.0 series) has been removed.

The previously deprecated Callback::make_val() functions are retained for API compatibility reasons, but are no longer documented. For any code which used Callback::make_val(), Callback::make_ref() should be a more efficient drop-in replacement.