Implement move constructor and move assignment operator.
The default (implicit) methods created by the compiler will be incorrect, since this class allocates dynamically. Thus, custom implementations were added.
See also !596 (merged). That the code does not crash is only due to the fact that move operation were not applied on this class.