Adding experimental precompiled header file support. It seems to work quite well with MSVC, but has a performance penalty when used with GCC