Use std::function<> for SignalAction.

This makes Clang happier, since it seems like it won't accept implicit
conversions between lambdas and function pointers.
Add the util::x11::ClientData<> wrapper.

This polite class will clean up after itself. Less XFree() calls
forgotten here and there, for a happier tint3!
Add the util::x11::ScopedErrorHandler wrapper.

This class installs an X error handler at creation time, and restores the old
one at destruction time.