Return strings by non-const value.

Returning objects by const value inhibits move semantics. I changed functions that return std::string by const value so that they return by non-const value. I can make a difference for any class where the move operation is cheaper than the copy operation (generally strings and containers).

I have the feeling that the guideline for C++11 is "never return by const value". However, I couldn't find such a clear guideline. I chose to return non-const values at least for classes where the move operation is cheap.