Convert to std::shared_ptr and std::bind() from Boost equivalents.

I first tried doing std::shared_ptr by itself, but ran into some
build issues in boost::bind() calls so I converted those as well.

As a bonus, I also updated the one instance of boost::scoped_ptr
to the C++11 equivalent std::unique_ptr, as that's already used
in other parts of this project's code.