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.