Provides a more "correct" move constructor/assignment operator, since these relevant functions shouldn't throw exceptions. Has the benefit of playing nicely with std::move_if_noexcept and other noexcept library facilities.
similar to the "frontend" folder