Add a Variant class
Rework application, make swap safe with non-POD
Forgot any.hpp
Simplify swap
Disable nothrow move check for now
Merge branch 'f/add-variant' into develop