Stability and aesthetic updates. Use std::move instead of static_cast, use copy constructors instead of swap(), add an r value reference constructor for string, some whitespace stuff and removing old comments.