Remove unused import
Fix second parsing pass for class/record types

Carry on parsing a class/record if the superclass is undefined,
check if a parsed class already exists (which it should in the second
pass), and if yes, only set the superclass, which should now be available.
Prefix class/record field getters/setters with lowercase class name

This is to prevent inheritance-related collisions.
Add a test that assembles a pipeline, and runs it

The pipeline is created and linked from multiple elements, and is equivalent to
the launch line
videotestsrc \
  ! video/x-raw,width=352,height=288,framerate=30/1 \
  ! textoverlay text='Assembling pipelines works!' font-desc='25' \
  ! autovideosink
Update the example output
Handle manually given typedefs

This is made necessary at least by the gpointer c:type. The problem
is that its name does not contain any *s, but it represents a pointer
type, so this simple heuristic is not sufficient. A type with the c:type
gpointer may not be treated as a pointer, resulting in functions like
gst_element_unref() being skipped because it is believed to take a struct
by value. This mechanism fixes the issue described.
Fix unrefs in PipelineTest

Now that we have a way to access the necessary unref functions, we
have no excuse for not using them.
Use unref in PlaybinTest as well
Add the pipeline assembling test to the runner
Update the example output