Self-assignment, constructor changes

Relatively small changes.

Changed a constructor of chunk to take a vector by value rather than by
rvalue reference (you can just std::move into it to get rid of the copy
if you want anyways).

Unmarked the running flag in Server as volatile.  All access to it is
mutex guarded now.

Added self-assignment guards inside copy/move constructors.

Still working on the MySQL problem.

Need to update constructors for Tag to reflect the new by value paradigm
(should remove a lot of code duplication there).