atk/atkversion.h.in: Add Version/Deprecation Macros

This adds version macros, like what is now done in GLib, GTK+ and Clutter,
so that these macros can be used in public headers to:

-Prepare for using a visibility-based (or __declspec(dllexport)method to
 export the public APIs during the build.  These macros are marked for 2.x
 stable releases as ATK_AVAILABLE_IN_X_Y, and ATK_AVAILABLE_IN_ALL for APIs
 introduced on or before the ATK-2.0.0 release.

-Add ATK_DEPRECATED_IN_X_Y macros for use on APIs that are deprecated
 in 2.x, and ATK_DEPRECATED for those deprecated earlier.  This
 is also used to export the deprecated APIs using the visibility-based/
 __declspec(dllexport) method.

https://bugzilla.gnome.org/show_bug.cgi?id=728031
Annotate the Public Symbols in Public Headers

This includes atk/atkversion.h in all the public headers, either directly
or via atk/atkobject.h, and annotates the public symbols in the headers,
which all lead to _ATK_EXTERN via one of ATK_AVAILABLE_IN_ALL,
ATK_AVAILABLE_IN_X_Y, ATK_DEPRECATED, ATK_DEPRECATED_FOR,
ATK_DEPRECATED_IN_X_Y or ATK_DEPRECATED_IN_X_Y_FOR, depending on which
stable release series the API was introduced or deprecated.

_ATK_EXTERN which can then be defined in a way during the build, so that
these symbols can be exported automatically using compiler directives.

Also use _ATK_EXTERN for ATK_VAR in atk/atkmisc.h during the build so that
variables can also be properly exported.

https://bugzilla.gnome.org/show_bug.cgi?id=728031
Include config.h For All the C Source Files

Make sure that config.h is included first in all the C-sources in atk/ so
that the build-time definitions of _ATK_EXTERN can be used during the
build of the ATK library.

https://bugzilla.gnome.org/show_bug.cgi?id=728031
atk/Makefile.am: Update Generation of Enum Sources

This makes sure that the generated enumeration header include
atk/atkversion.h, and decorate the symbols there with ATK_AVAILABLE_IN_ALL.
Also, make sure that the generated enumeration source file includes
config.h before including atk.h.

https://bugzilla.gnome.org/show_bug.cgi?id=728031
Use Visiblity-based Symbol Exporting

Update the autotools files to determine the compiler directive used to mark
a symbol for export, and use the appropriate CFLAGS as necessary.  Also
make MinGW builds not to generate atk.def and attempt to generate and
install a Visual Studio .lib file from there.

https://bugzilla.gnome.org/show_bug.cgi?id=728031
MSVC Build: Add Simple Support for Visual Studio 2012

As the format of the Visual Studio 2012 project files are not much
different as compared to the 2010 ones, we can use some simple autotools
scripts to copy the Visual Studio 2010 project file items, and replacing
Visual-Studio-version-specific strings as necessary, so we provide support
for it quite easily without much maintenance overhead.

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