Switch to CMake

I've tested on Linux, OSX and Cygwin, but please help with testing your favorite configurations and report any issues found.

This change provides a configure wrapper script to make it almost backwards compatible with the old build system. See `configure --help` for details.

What comes to the build flags, it's not 100% identical with the old ones. Some of the platform specific build flags collected over the last decade were intentionally left behind. The latest ZNC requires a modern toolchain that supports C++11 anyway, so many of those old exotic flags are probably no longer even needed. The idea is to let CMake as a cross-platform to specify the correct flags, mostly.

The proposal also changes the structure a bit. After struggling with the damn object files for a good while, I decided to propose building the core as a library instead, like it was already done on Cygwin. I strongly believe this is the right direction to go in the future (see #210 and [Wiki](http://wiki.znc.in/Ideas)).

/cc @samuelgaist
> Portability (both, platforms and toolchains) comes as a bonus

That's right. But for real portability you'd also need to replace options like `-std=c++11` with whatever MSVC wants.

> Reviewing all the little details is important, thanks for all the effort with that so far

I've only glanced over it so far, and pointed what confused me :D I didn't compare them line by line

> not every little difference to the current build system needs to be considered a blocker

sure

> so simply reporting the issue could be a viable option.

true

> I'd let CMake generate export macros.

Just `#define EXPORT __declspec(dllimport)` inside `#ifdef`? That's easy enough without CMake...