Improve the Move constructor precondition

Use a mixin to clarify precondition intent at the definition site.
Added a description to explain what each precondition test means.