Refactored build flags for well-known compilers

Refactored build flags management inside root's CMakeLists. Now every
known compiler should define its own flags in a per-functionality
fashion (eg: ${cxx_debug_info_flags} instead of "-g", "/g", etc...).
Unknown compilers are going to get default CMake's flags.
Fixed double symbol definitions

Fixed double definition for cf::ESCAPE and cf::escape(...), removed from
cf_source.cpp and left in cf_string.cpp.
Disabled useless MSVC warnings

Permanently disabled useless warnings emitted by MSVC about a supposed
"performance impact" of implicit conversions from int to bool. More info
here: http://msdn.microsoft.com/en-us/library/b6801kcy.aspx
Fixed typenames

Removed several typename keywords, don't know wether erratic or
explicitly admitted as redundant by the standard but MSVC was rejecting
them as errors.
Fixed cf_compile_libstruct custom command.

Instead of specifying the absolute path of the actual binary to be
executed, the "new" ADD_CUSTOM_COMMAND supports using a target's name
directly. This fixes the cf_compile_libstruct custom command execution
on Visual Studio.
Fixed make_readme_md execution on Windows.

Windows' cmd doesn't support shebang, so we cannot call a script
directly letting the shell identifying the right interpreter. Added
explicit interpreter call.
Added VS project groups for md targets.

Added VS project groups for md targets. This feature is currently
non-working on VS12 Express, to be tested on Professional and older
editions as well.
Added platform compatibility header.

Added an header file dedicated to platform-specific hacks/workarounds.
Fixed cast in bool operators.

Removed warning suppression, added proper bool coercion in cf::platform.
Fixed --dont-make option on make_readme_md.

Fixed a bug that prevented excluding "make" from make_readme_md
execution.
Changed to custom command to MD (to be tested)

Changed MD generation (via make_readme_md) from CUSTOM_TARGET to
CUSTOM_COMMAND in order to retrieve target's actual output file under
Visual Studio generator (using a generator expression). It seems to be
working except for dependency resolution (the generation command depends
on md_exe). Currently non working, to be fixed.
Refactored MD generation CMakeLists.txt

Partially refactored md/CMakeFiles.txt, removed redundant targets for
the first part, the CF_MD_ENABLED section still don't work.
Fixed MD files generation

Fixed the MD files generation process, issue solved using a POST_BUILD
command.
Fix unused named exception in libstruct gen src

Fixed an unused named catch exception in the source file generated by
cf::Compiler that was raising a MSVC warning.
Added VisualStudio project folders

Added VisualStudio project folders for all targets. Please note that thi
feature doesn't work on Express editions.
Fixed check target dependencies

Fixed "check" (ctest) target dependencies; without this changes, a
direct build on that target didn't fire up the actual libcf build.
Fixed missing dependencies on MD generation files

Fixed missing dependencies on MD generation files that prevented the
correct execution of generator binaries.
Added default build configuration

When no CMAKE_BUILD_TYPE is specified, the root's CMakeLists will set
its value to a default (currently set to "Release").
Merge branch 'win32-port'

Conflicts:
	CMakeLists.txt
	md/CMakeLists.txt
	tests/CMakeLists.txt
Merge branch 'simone'