graphene-macros.h: Fix MSVC Compilation

Fix the typedef line when we don't have stdbool.h on Visual Studio, and
include stdbool.h on Visual Studio 2013 and later, as it does ship with it.
graphene-simd4f.h: Define Macros for MSVC Builds

...when it is possible to build the libraries with SSE2 intrinistics on
Visual Studio.  It is more or less like the SSE2/GCC version, but due to
syntactical differences we need to define these as macros for Visual
Studio, and there are still a some differences when we convert between
__m128 and __m128i.
graphene-line-segment.h: Allow Build on MSVC

MSVC is quite picky about types in regards to initialization, so split up
the initialization line to make everyone happy.
graphene-alloc.c: Allow aligned_alloc Behaviour on MSVC

MSVC supports aligned memory allocation, but with some differences, namely:

-It uses _aligned_malloc(), which does the same thing but with inverted
 parameters with aligned_alloc().

-Memory allocated with _aligned_malloc() must be freed with
 _aligned_free(), otherwise the program will abort.
graphene-simd4x4f.h: Allow Build On Visual Studio

Fix the initialization in graphene_simd4x4f_init() so that compilers will
be happy with the types, and add a definition for
graphene_simd4x4f_transpose_in_place(s) that is suitable for Visual Studio
when we have SSE2 intrinistic support.  The SSE2 initrinistic support, due
to ABI issues, like the GCC builds, are only supported on x64 builds, and
possibly x86 builds on MSVC 2013 and later using __vectorcall.
tests/graphene-test-compat.h: Allow Build on MSVC

Define graphene_assert_fuzzy_equals that is suitable on Visual Studio
builds, as it does not support typeof, and there are some differences in
syntax.  Later Visual Studio versions support similar functionality with
decltype.
Benchmark: Allow Aligned Allocation on MSVC

MSVC supports aligned allocation via _aligned_malloc(), which is similar to
aligned_alloc(), but with the parameters inverted.  Also, on MSVC, whatever
that is allocated with _aligned_malloc() must be freed with
_aligned_free(), otherwise the program will abort() internally by the CRT.
graphene-bench-utils.h: Export Symbols Via Compiler Attributes

Decorate the symbols in the headers so that the symbols can be exported, as
graphene-bench-utils.c needs to be built as a DLL.
bench/matrix.c: Update g_free->free

Use free() instead of g_free() according to Emmanuele's suggestions, since
we are using the system allocator.
graphene-sim4df.h: Fix typo

Sorry for my not-too-good English, fixed: reciprocol->reciprocal.
graphene-test-compat.h: Remove MSVC 2010+ Code Path

Apparently decltype is only available for C++, so it won't work for plain
C programs, so remove the MSVC 2010+ codepath that was trying to use it.
Enable SSE Intrinistics on MSVC 2013+ 32-bit Builds

Use __vectorcall on  graphene_simd4x4f_init() on MSVC 2013 (and later)
32-bit builds so that SSE intrinistics can be enabled on 32-bit builds for
recent MSVC versions.  Also, as Emmanuele suggested, move the VECTORCALL
macro definition into graphene-macros.h.
Clean up Previous Commit A Bit

Visual Studio does not normally set _M_AMD64 automatically, so don't check
for that.
graphene-macros.h: Make VECTORCALL Define More Readable

Make the define clearer, only for MSVC 2013+ and MSVC 2013+ X86 builds,
otherwise define to nothing.
Merge pull request #25 from fanc999/master

Allow Build of Graphene on Visual Studio