scanner: Fix parsing for various typedef struct orderings

Add structs parsed from C's "tag namespace" into their own cache for lookup
by typdef parsing. This fixes issues where a typedef declared after a
struct would not have a correct name. This also cleans up the need for
special casing struct tags prefixed with an underscore.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
scanner: Add simplified parsing for nested structs

Add _create_member_struct for the parsing of nested structs. This is
precursory work to remove the member/anonymous flag from other struct/union
creation code and allow simplification of those code paths.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
scanner: Use tag namespace for parsing unions

Generalize _create_tag_ns_struct for both structs and unions. Remove
_create_compound newer struct parsing code has completely replaced it.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
scanner: Remove typedef namespace cache

Remove the caching of typedefs in Transformer._typedef_ns. This is no longer
used due to the added _tag_ns cache which store tags rather than typedefs.
Remove adding of callback typdefs to the typedef_ns since these were not
being used anyhow.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
scanner: Cleanup exception handling in the transformer

Move exception handling of various symbol/identifier stripping into the
outer level parse function. This removes a lot of embedded try excepts
peppered throughout the code by letting exceptions flow to the top level
where they can be handled just as gracefully.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
scanner: Replace GInitiallyUnowned field sharing with generic solution

Remove GInitiallyUnowned special case in gdumpparser where fields are
copied from GObject. Add generic solution where anytime we have multiple
typedef structs, the fields become shared:

typedef struct _Foo Foo;
typedef struct _Foo Bar;
struct _Foo {...};

https://bugzilla.gnome.org/show_bug.cgi?id=581525