Fix compilation with gcc 4.4 in C++11 mode

Add constructor and assignment operator implementations for gcc 4.4 since it does not support defaulted move constructors and assignment. The operators are also used for gcc 4.5 for good measure (I cannot test it but gcc 4.6 does not need this workaround).

Also the workaround is used for MSVC as well. The previous MSVC branch was incorrect since it did not invoke base class constructors and assignment.

See the "[1.56.0] Release candidates available" discussion on the ML for the original compilation error.
This looks extremely fishy to me. Why are you mutating a const value here?