Implemented second, safer versions of move ctor, assign and swap added. Choosing between versions may be done with traits.
Unsafe method moves values directly e.g. by memcpy, is nothrowing and is probably faster. If some members of Value class stores addresses relative to the Value object address, using of this version will cause an error.
Safer method uses move ctors and assigns if possible or copies, is throwing, provides basic or strong safety and is probably slower.