added smart_ptr class + C++11 feature support

smart_ptr: switches between std::auto_ptr and std::unique_ptr
according to cmake flag.

C++11 support: according to user C++11 flag, the appropriate compiler flag is added