Fix the build with libstdc++ v4.6 on Linux by supplying an explicit move
assignment operator. There is an issue where classes with deleted copy
constructors and user defined move constructors end up with an
implicitly deleted copy constructor that is selected instead of the
implicit move constructor. This is a bit of a hack, but it allows me to
build LLD in a bootstrap with libstdc++ which is my primary goal.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172896 91177308-0d34-0410-b5e6-96231b3b80d8
Allow the LLD CMake build to work with -std=gnu++0x and -std=gnu++11 as
well as c++0x and c++11. This can be especially useful when building
with GCC in C++11 mode.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172897 91177308-0d34-0410-b5e6-96231b3b80d8
Replace the 'final' keyword with 'LLVM_FINAL' as GCC 4.6 doesn't support
the keyword.

If anyone cares deeply about the final optimizations with GCC, we might
want to add a version test to the LLVM definition, but I'm perfectly
happy with this just only firing under Clang and modern MSVC builds.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172898 91177308-0d34-0410-b5e6-96231b3b80d8