Update to a newer libstdc++.

This is necessary for C++11 support.
Go, go, gadget C++11
Switch from Boost libraries to the standard library.
Merge pull request #199 from AlCutter/c++11

Go, go, gadget C++11
Fix up formatting.

I messed up the formatting a bit in commit 5bf725d3, sorry!
Fix TODOs related to C++11.

Most of them are converting from shared_ptr to unique_ptr, where it makes
sense. We used shared_ptr because of its ability to have a deleter, but now
we can use unique_ptr, which is simpler (no reference count), and also have
a deleter.