Add a binder class which wraps method calls on weak pointers

safe_bind(object, method) creates a wrapper around a method
call which when invoked either calls object->method() with
the supplied arguments or if the object has been destroyed,
does nothing and returns a default value.

'object' can either be a QObject, in which case it is watched
using QWeakPointer or a weak pointer class - either QWeakPointer,
weak_ptr or a class with the same interface as weak_ptr.

This can be used to automatically "disconnect" a callback
for QtSignalForwarder if the receiver is destroyed.
Merge branch 'master' of https://github.com/robertknight/qt-signal-tools

Merge rename of QtCallbackProxy -> QtSignalForwarder
Add test for use of safe_bind() with QtSignalForwarder