Add private assignment operators.
Patch from Richard Webb.
This fixes #1414, where msvc complained that default assignment operator
could not be generated. This can be fixed either by pragmas, or by
declaring (but not defining), private assignment operator. The latter
approach seems better, since it's likely to help on other compilers.