Fix some C++ value / reference semantics issues.

Some functions were taking Twine's not by const&, these are all
fixed to take by const&.  We also had a case where some functions
were overloaded to accept by const& and &&.  Now there is only
one version which accepts by value and move's the value.

llvm-svn: 315229
diff --git a/llvm/tools/llvm-rc/ResourceFileWriter.cpp b/llvm/tools/llvm-rc/ResourceFileWriter.cpp
index 8b7cd92..3d72e16 100644
--- a/llvm/tools/llvm-rc/ResourceFileWriter.cpp
+++ b/llvm/tools/llvm-rc/ResourceFileWriter.cpp
@@ -380,7 +380,7 @@
     writeInt<uint8_t>(0);
 }
 
-Error ResourceFileWriter::handleError(Error &&Err, const RCResource *Res) {
+Error ResourceFileWriter::handleError(Error Err, const RCResource *Res) {
   if (Err)
     return joinErrors(createError("Error in " + Res->getResourceTypeName() +
                                   " statement (ID " + Twine(Res->ResName) +