Started writing cmake support.

Currently this only supports gcc builds, but I'll continue working on
it to support the rest as well. The problem here seems to be the
src/Platforms directory, where I need to find a neat way to solve that.
Add support for config flags supported by automake to cmake.
Support installation of headers and libraries using cmake.
Add warning as error, and some warning flags for non visual studio.

There have also been remove one warning, C4290, which is a warning
about Visual C++ not having checked exceptions implemented.

Unfortunately, check_c(xx)_compiler_flag doesnt like result names
with more than one -, meaning that testing flags with more than one
- in the name (more than one word) can't be done in a loop without
some more "clever" tricks.
Fix using GMock and GTest.
Remove unreferenced variable e in the CHECK_THROWS macro.
Change to use the clang __has_attribute to check for noreturn.

The preferred way to check if clang supports noreturn is to use
__has_attribute(noreturn). Since that doesn't exist except in clang,
we need to define it to 0 for all compilers that don't have it
predefined.
Disable warning on division by zero for Visual Studio for tests.

The reason for doing this, which we of course would love to avoid, is
that we are actually intentionally doing a division by zero in one of
our tests.