Removed early out in VS lookup code that made us prefer the first version found.

This was added to workaround VS 2013 type traits parsing problems, but since that's been fixed upstream this no longer makes sense.

Fixes PR159.
Merge pull request #160 from InitialForce/visual_studio_2012_2013

Fix Visual Studio lookup logic to handle Visual Studio 2012 and 2013 (11.0 and 12.0) environment variables
Reworked parsing of preprocessed entities.

Fixes macro expansions and translation units processing.
Move CppParser method definitions out of the headers and into the source file.

This is a workaround for missing symbols when P/Invoking on the Mac for instance. There should be a working "-fkeep-inline-functions" switch available in Clang but upon reading the source code, it does not do anything besides consuming the option (not even a warning!).
Re-generated the parser bindings for 32-bit Darwin/OSX.
Converted the rest of the inline declarations to be defined outside the header.
Re-generated the parser bindings for 32-bit Darwin/OSX.
Added missing definitions for the AST structures in the C++ parser.
Fixed memory corruption bug by explicitly initializing the pointer to null.
Fixed triggering exception in declaration converting by handling the declaration first.
Fixed parser bindings build to correctly choose the correct generated bindings depending on the platform.
Fixed parsing bug and subsequent failing test in GenerateEnumFromMacros.

It now uses preprocessed entities instead of the soon-to-be-removed macros.
Updated the parsers to the latest Clang API changes.
Fixed parser to work with recent Clang changes.

Basically we need to lock in the MS inheritance model in a record when it appears as part of a member pointer type else we get some fun Clang code gen internals assert.
Use the most recent (re)declaration when setting the MS inheritance model.
Re-generated the parser bindings.
Added support for keeping track of extern "C" contexts in classes/structs.
Ignore some unused methods in the parser bindings.
Improved generation of enumerations from macros.

We now keep track if a certain macro has already been generated in an enum and skip it in future calls to GenerateEnumFromMacros.
Fixed CheckMacroPass pass to work correctly for declaration contexts.

This has been broken since we started parsing preprocessed entities for all declarations. In the specific cases of declaration contexts (translation units and namespaces) we would be processing child declaration preprocessed entities and ignoring the whole contexts by mistake.