Add swap function and tests.
Add assignments operator, emplace method and test. Correct bug in move constructor, add tests.