C++11 std::shared_ptr in public API

That was a thorough comment @tfoote wrote and a good reminder of the rationale. I don’t know if ROS-M will still target Ubuntu 16.04, but if not, gcc6 will be on all Ubuntu distros already (starting with 16.10) so the possibility is there.