Replace pnProduct with CMake settings

Plus a thin wrapper in CoreLib for accessing the values in a type-safe manner, and for the ProductString functionality previously in pnProduct.  I have built and tested it on MSVC10, but this should be tested on Linux too before merging, since it messes with several CMake files.