giscanner: prevent implicit declarations

https://bugzilla.gnome.org/show_bug.cgi?id=724737
ast: make sure that all nodes have a namespaces

Include Fields (which are not really Node, but the doctool wants
to treat as such) and the methods of Boxed nodes.

https://bugzilla.gnome.org/show_bug.cgi?id=724735
doctool: improve Gjs documentation

- Add documentation for structures, fields, constants and
  callbacks
- Improve the synopsis for interfaces to have prerequisites
  and known implementations
- Respect gjs constraints for field writability
- Format in and out parameters for callables according to GJS
  conventions
- Format property names according to the GJS API
- Show boxed constructors according to how they can be used
  in the gjs API

https://bugzilla.gnome.org/show_bug.cgi?id=724735
doctool: update reference tests

https://bugzilla.gnome.org/show_bug.cgi?id=724735
doctool/Gjs: some more fixes for structs and unions

Stop pretending we have fields on unions (only methods are
supported).
Add minimal support (ie, don't crash) to nested structures,
that due to how ast works have namespace None (and the
transformers hard-depend on that). Uncovered by GLib's
GDoubleIEEE754, before I removed union fields.
For some reason, RegressTestStructE (anonymous union) has a
completely different behavior and generates a weird name,
while RegressLikeGnomeKeyringSchema (array of unnamed structs)
becomes array(gpointer).
Bah, one should have methods anyway...
scanner: support virtual functions with a typedef-ed callback

The field of a callback need not be anonymous, it could be a
typedef, with a proper Type node.

Fixes TelepathyGlib.BaseClient having no virtual functions
(and probably others)

https://bugzilla.gnome.org/show_bug.cgi?id=723439
build: Use $(EXEEXT) for typelib compiler

Fixes Windows.

https://bugzilla.gnome.org/show_bug.cgi?id=724874
Quote PATH (in case it contains spaces)

https://bugzilla.gnome.org/show_bug.cgi?id=724876
Extend the hack towards backslashes as path separators

https://bugzilla.gnome.org/show_bug.cgi?id=724877
scanner: Support running under MSYS

https://bugzilla.gnome.org/show_bug.cgi?id=724880
Remove special W32 libnames, as they break stuff

https://bugzilla.gnome.org/show_bug.cgi?id=724881
scanner: Correctly pass linker option --export-all-symbols

https://bugzilla.gnome.org/show_bug.cgi?id=724883
Fix a typo (exe -> .exe)

https://bugzilla.gnome.org/show_bug.cgi?id=724884
Fix some PEP8 errors from previous commits
scnaner: Support asm __volatile__

https://bugzilla.gnome.org/show_bug.cgi?id=724887
scanner: Support __restrict__

https://bugzilla.gnome.org/show_bug.cgi?id=724887
Also add EXEEXT to .pc files

https://bugzilla.gnome.org/show_bug.cgi?id=724888
scanner: Fix shlib resolution on W32

GI just adds '.dll' to library name and calls it a day.  There's a
comment about how this function might work, i've used it to implement
something better.  This requires a compiler that supports
-print-search-dirs argument (i.e.  gcc) and a dlltool.

https://bugzilla.gnome.org/show_bug.cgi?id=724890
scanner: Make shlib Resolution Work Also With Visual C++

Commit f3fcdf97 introduced shlib resolution for Windows, but it only works
with MinGW and would therefore break builds of introspection files for
Visual C++.

Improve on the situation by adding capabilities to do the same with Visual
C++, as the introspection dumper program is still compiled and linked with
the Microsoft tool set (only the proprocessor to process the various
headers is using GCC/MinGW).

This makes use of the dumpbin utility that is shipped with Visual C++,
which will query a .lib file, which leads to the DLL that the .lib file
will link to.  The 'gcc -print-search-dirs' can be replaced on Visual C++
builds by querying the LIB environment variable, as this is what the Visual
C++ compiler/linker really looks at during compilation and linkage.

https://bugzilla.gnome.org/show_bug.cgi?id=724890
MSVC Builds: Update Introspection Build Process

The introspection build on Windows recently received support to deduce the
DLL name from the library that is passed into g-ir-scanner, so the library
name (without the file name extensions, etc) ought to be passed in for the
build of introspection files on Windows, just like the *nix builds of
g-i.