Changed the CMake check to enable C++11 automatically if GCC > 4.3 or Clang > 3.0

This patch aims to prefer standard smart pointers to self-implemented ones.