scanner: Consistently use realpath() on input filenames

The scanner has some logic to compare the filenames specified
on the command line against files it will parse.  For the latter,
it uses g_realpath().  With this patch, we also use g_realpath()
on the command line arguments.

This fixes g-i when used inside jhbuild in a gnome-ostree VM,
which has a symbolic link /home -> /sysroot/home.  This caused
a realpath mismatch, and then we'd ignore the input source files.

It'd be best to get out of the realpath business entirely...but
a patch to do that seems more likely to break.

https://bugzilla.gnome.org/show_bug.cgi?id=704864
Update annotations from glib 2.37.5
Add win32-1.0.gir

So for doing the GTK+ stack with gobject-introspection on Windows, we
basically need to stub out the win32 types just like we do for xlib.

Contributed by serenomickael@gmail.com
Makefile: Fix the build
build/win32/gengir.bat: Process win32-1.0.gir

...and include it when we generate GLib-2.0.gir as the Windows types are
used from there on, and update the .typelib compilation command lines
accordingly, as it will be referenced.
Update annotations from glib master
g-ir-compiler: remove references to --code, remove --no-init options

The "--code" option was removed years ago in ac81f3e8c5f1c380d16677232d67466e739da283
so remove references to it from README and g-ir-compiler(1)

Remove the "--no-init" option from g-ir-compiler and g-ir-compiler(1)
as it was documented to "can only be used if --code is also specified",
so no reason to keep it around.
build: actually require libffi >= 3.0.0

as documented in README...
README: fix the Tools section a bit
tests: Update misc/pep8.py to 1.4.6

Updated from:
https://raw.github.com/jcrocholl/pep8/1.4.6/pep8.py
tests: make parsed2tree() and expected2tree() methods of TestCommentBlock()
tests: put create_tests() below TestCommentBlock()

closer to __main__, where it's actually used...
tests: rename <commentblock> element to <input>

We'll start testing parser warning/error messages and
serialized output later on so this will make it easier to
see what's parser input and output...
tests: put <docblock> element inside a <parser> element

The <parser> element can then hold both the expected
<docblock> parse tree and the warning/error messages
emitted by the parser in a future <messages> child
element.
tests: validate GTK-Doc test files

This is more of a handy developer tool than something
that is always expected to be executed as part of the
test suite, so we don't add a hard dependency on xmllint.

https://bugzilla.gnome.org/show_bug.cgi?id=688897
tests: remove manual validation code

We're already validating input .xml files so no need
to duplicate this...
tests: compare matched groups when testing re's
tests: fix warning tests message sorting...

... by using the actual line numbers instead of sorting
the whole expected/emitted string. The latter is wrong as
for example tests/warn/annotationparser.h line 109
got sorted before line 120 which got sorted before
line 12.
tests: test emitted GTK-Doc parser warning messages
tests: fix diff output

Empty lines do get removed or added sometimes, so make sure we see
those in our diff output.