Fix overload to reference to const vs. temporary

- Added the overload for reference to const
- Delete the r-value reference function (accepting a temporary)
Added unit test for non-const and const reference to std::string