tests/repository: Drop Unneeded Includes

unistd.h is not universally available, and dropping that include did not
seem to cause any warnings or errors, and did not affect the tests running.

https://bugzilla.gnome.org/show_bug.cgi?id=734640
tests: Add a Header for Symbol Exporting

This adds a header under tests/ that can be included by the various test
libraries/sources so that symbols from them can be decorated by a macro,
which can then be used to export symbols by using a compiler directive,
like the updates to girepository.  This header is also installed as the
test headers refer to them.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
girepository: Add Header for Version Macros

This adds a header to the girepository library, which is then included
either directly or indirectly by the other headers so that all the public
symbols (and the 2 symbols in gitypelib-internal.h used by the tools) are
decorated by a macro, that can later be used to export the symbols and also
to be used to display compile-time warnings for usage of deprecated APIs,
which is like what is now being done in GLib (and GTK+, Clutter, and so
on).

This marks the first step that we begin to stop depending on the .symbols/
.def files to export the symbols.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
tests/: Decorate Symbols for Export

This updates the test headers and sources to decorate the symbols with the
macro that can be used to export the symbols, and include config.h first in
the c-sources so that the macro can be defined with the compiler directive
to export the symbols.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
tests/scanner: Decorate Symbols for Export

This updates the test headers and sources to decorate the symbols with the
macro that can be used to export the symbols, and include config.h first in
the c-sources so that the macro can be defined with the compiler directive
to export the symbols.  Update the CFLAGS as well so that the header that
defines the export decoration macro can be found.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
build: Export Symbols Using Compiler Directives

Use compiler directives for exporting symbols for the build of
libgirepository and also for the test libraries, like what is now done
in GLib and GTK+ so that maintaining a separate .symbols (and .def files)
would not be needed, in which the correct compiler directive is determined
during configure time.  Drop all the .def files and the .symbols file as
we would not be using them anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
Update config.h.win32.in For Symbol Exporting

This updates the pre-defined config.h.win32(.in) so that the Visual Studio
builds can use so that symbols for libgirepository and the test libraries
can be exported using the compiler directive __declspec(dllexport), without
the use of .def files.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
Visual Studio Builds: Stop Using .def Files

Remove references in the project files to try to create a .def file and
using it to export symbols for libgirepository, as they are now exported
using __declspec(dllexport).

https://bugzilla.gnome.org/show_bug.cgi?id=732669
gi-tests-msvc.mak: Include $(srcroot)\tests

... so that the header that defines the export macro can be found when the
test programs/DLLs are built

https://bugzilla.gnome.org/show_bug.cgi?id=732669
codegen.py: Update Generation of everything.[c|h]

Update everything.h include the header used to decorate symbols with the
macro for export and everything.c to include config.h first, and have the
symbols decorated with the aforementioned macro.

https://bugzilla.gnome.org/show_bug.cgi?id=732669
Revert "codegen.py: Update Generation of everything.[c|h]"

This reverts commit 7a82752734b496bb619fce62572c0c7f8578350a.
scannerlexer.l: Update to Support MSVC Preprocessor

This updates giscanner/scannerlexer.l by ignoring the Visual C++-specific
directives, so that the scanner will not bail out while trying to produce
the introspection dumper program source code, and silence many of the
warnings that are produced in the process.

As the Visual C++ processor produces slightly different line markers, we
need to handle this here as well, otherwise the sources/headers would not
be processed to acquire the _get_type and _get_gtype symbols to put in the
introspection dumper sources, producing bad results.

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