Smart pointers

Hello,

this pull request uses several C++11 keywords.

-First of all, I wrote a CMakeLists.txt - and also had to make some minor adjustment to include paths. This was for convenience with my IDE; however, I 'd recommend moving to CMake at some point anyway. It can generate makefiles for many platforms and compilers and is thus more flexible.
(note the current CMakeLists.txt would need work to acquire this flexibility).

-all pointers onto which delete was called were replaced by std::unique_ptr.
-several old-style for loops in game.cpp were replaced by ranged based for
-new pointers are added to the vector by emplace_back; if a compiler doesn't support this C++11 feature it will need to be replaced by push_back(std::move())
-Game's member variables are now initialized in initialization list rather than in the ctor itself.

As far as I can tell, none of the changes break anything - ie no functional change.
If such changes are welcome, I will happily make more pull requests of similar nature.