Convert CraContext and CraTask to GObjects

This adds a lot of boilerplate, but makes the resulting code base more
understandable and less 'magic'.
trivial: Fix a tiny memory leak
trivial: Fix a 'make distcheck' failure