Cleanup by using libgsystem cleanup functions

For some reason we ended up defining our own macro to define cleanup
functions, when libgsystem has a usable one.  Switch to that, fewer
lines of code, more consistency.
Centralize cleanup function definitions

We might as well do what systemd does and have a big header which
defines all of them, to more conveniently share them for libraries
that don't include them (like hawkey/librepo, as well as things that
libgsystem doesn't yet cover).
Merge pull request #45 from cgwalters/cleanup-cleanup

Looks great.