tests: Use Automake test harness for scanner diff tests

Add gi-tester script for dispatching various scanner diff tests based on
their target suffix. Hook the dispatcher script into the Automake test
harness which is passed the diff test target name. Remove usage of
check-local which is always run regardless of whether or not the TESTS
variable is set from the command line. This allows for both the ability to
use the harnesses XFAIL_TESTS variable for expected failures as well as
testing of targets individually, for example:

cd tests/scanner
make check TESTS=GtkFrob-1.0.gir
make check TESTS=Regress-1.0-Python

Add Headeronly-1.0-expected.gir for validating the results of the header
only gir creation test.

https://bugzilla.gnome.org/show_bug.cgi?id=720713
tests: Use EXTRA_LTLIBRARIES instead of check_LTLIBRARIES

Update tests/Makefile.am and tests/scanner/Makefile.am to use
EXTRA_LTLIBRARIES which minimizes the building of libraries to only
dependencies of specific tests when using: make check TESTS="..."

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

Update warning tests to use the Automake test harness per-header
file check. This allows for quicker more granular testing, for example:

cd tests/warn
make check TESTS=return-gobject.h

https://bugzilla.gnome.org/show_bug.cgi?id=720713
tests: Use Automake test harness instead of gtester

Switch both cmph-bdz-test and gthash_test to use the Automake test harness.
Use EXTRA_PROGRAMS and EXTRA_LTLIBRARIES along with CLEANUP to allow lazy
dependency evaluation of testing targets.

https://bugzilla.gnome.org/show_bug.cgi?id=720713
tests: Refactor test_parser and test_patterns to use unittest.TestSuite

Update both test_parser.py and test_patterns.py to dynamically generate
TestCase sub-classes rather than modify a statically defined one.
Use unittest.TestSuite to queue up the generated test cases via the
"load_tests" hook.
Use underscores instead of periods as a seperator for dynamically generated
test cases and methods to match Python identifiers.
Beyond general cleanup, these changes will help the ability to specify
Python tests individually.

https://bugzilla.gnome.org/show_bug.cgi?id=720713
tests: Use Python unittest module parameterization for annotationparser

Add Python unittest module parameterization support to gi-tester through the
use of a "TESTARGS" variable. Use the Automake test harness along with
gi-tester for running the Python annotationparser tests.
Add tests/scanner/annotationparser/Makefile.am and localize testing
rules and EXTRA_DIST setup to this file. Specific Python tests can now be
run as follows:

cd tests/scanner/annotationparser
make check TESTS=test_patterns.py TESTARGS=TestTagValueStability

https://bugzilla.gnome.org/show_bug.cgi?id=720713
typelib compiler: properly initialise memory

The typelib compiler was writing uninitialised memory to the output file.

There were two sources of this uninitialised memory: the hash writer included
some uninitialised memory in its output, and the bytes added after the hash
output for padding were also not being initialised.

Fix this by passing the padded size to the hash code writer function and
having that function initialise the entire memory region to zero before
writing.

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