Enable forwarding of signal arguments to function objects

Replace QtCallbackProxy::Callback with QtMetacallAdapter, a wrapper
around either a QtCallback or a function object which takes
an array of QGenericArguments and invokes the underlying functor.
Implement runtime checking of signal and receiver types

For both function objects and QtCallback receivers, check that
the signal supplies enough arguments of the correct types to invoke
the receiver.
Fix UI control example build

Pass a QtCallback rather than a QtCallback1 to
QtCallbackProxy::connect().

QtCallback1() matches the functor constructor instead of the
QtCallback() constructor and hence fails to build.

The QtCallbackN classes are useful only when the callback is
invoked directly as they provide compile-type type checking.

QtCallbackProxy only uses runtime-checked matching.
Document that function wrappers other than std::tr1::function are now supported
Add test of using function and bind() to cast signal arguments
Improve documentation of QtCallbackProxy and QtMetacallAdapter