tests: Update Python stanza to change directories before running tests

Ensure PYTHONPATH uses absolute paths for top_builddir and top_srcdir. Use
pushd/popd before and after running tests with "python -m unittest...". This
ensures TESTARGS can be used from within a vpath build directory.

https://bugzilla.gnome.org/show_bug.cgi?id=720713
tests: Use Automake test harness for tests/offsets

Replace usage of check-local with the Automake test harness. Change check_
variable usage to EXTRA_ in order to avoid building these dependencies with
targeted testing using TESTS= in parent directories.

https://bugzilla.gnome.org/show_bug.cgi?id=720713
tests: Add tests for various struct typedef combinations

Add functional blackbox tests typedefs.[h|c] for various struct typedef
orderings. Use XFAIL_TESTS with the new Typedefs-1.0.gir target.
This allows for a differing expected gir that does not cause the suite
to fail but rather a goal to work towards.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
scanner: Fix get_symbols/comments to maintain the scanner lists

Use g_slist_copy prior to returning the lists run through g_slist_reverse.
This preserves the source scanners internally held lists where previously
they would only point to a single element after a call, leaking memory and
breaking subsequent calls. Note the functions as (transfer container) and
use g_slist_free after calls in the Python bindings.
Add new unittest file: test_sourcescanner.py for isolated unittesting of the
SourceScanner.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
tests: Add transformer typedef struct tests

Add tests for various combinations of struct tags and typedefs. This
includes tests for orderings of a typedef prior to struct definition,
reversed, all in one, and multiple typdefs. The currently failing tests have
been marked as "expectedFailure" so the test suite doesn't bail out.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
tests: Add nested struct tests for transformer

Add tests for nested structs as they pass through the transformer.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
tests: Add nested union unittests

Add a sub-set of tests found in struct testing as only basic validation is
needed due to the shared code paths.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
tests: Add transformer tests for callback typedefs

Add a basic transformer unittest for callback typedefs.

https://bugzilla.gnome.org/show_bug.cgi?id=581525
Update glib annotations from git master
tests: Update GI to use parallel test harness

There was some dependence on the serial test harness in the recent tests
that were added. Update GI to use the parallel test harness to avoid
incompatibilities.

https://bugzilla.gnome.org/show_bug.cgi?id=721477
tests: Remove debug echo from gi-tester

https://bugzilla.gnome.org/show_bug.cgi?id=721477
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
regress: Fix regress_test_torture_signature_2() to actually call the callback

This provides a test case for https://bugzilla.gnome.org/show_bug.cgi?id=722104
Rework The Visual Studio 2008 Build Process

This patch makes the build of G-I on Visual Studio 2008 into a two-step
process, as it would make it clearer and easier to the one building G-I by:

-Splitting up the property sheets into multiple parts, where pre-configured
 code (which is currently shipped with the tarball) is copied using custom
 build steps, so that they can be re-copied when they are updated.  This
 also removes the need for setting environment variables before launching
 the Visual Studio Project to build the G-I DLL, the tools written in C and
 the _giscanner Python2 module.  The Python2 paths (set to Python 2.7.x)
 are now set in a property sheet, which can be updated quite easily, if
 needed.
-Use a set of NMake Makefiles to build the introspection files for GLib,
 and also the .gir's that are shipped with G-I, and make it clear to people
 what things are needed to build the introspection files.
-Standardizing across the board that we now use $(ApiVersion) for the .lib
 files and the "installation" of headers, etc.

Similar updates to the Visual Studio 2010 files will follow later.
build/win32/vs9/Readme.txt: Remove Extra Blank Line