Created by: mtrofin
module_mapper_t should have move semantics, but simply relying on default ctors/assignment operands isn't enough: we also need to clear the originating object, otherwise the destructor would free resources twice; and the assignment operator would have to figure out what to do with the original resources.
We don't need an overly-complicated design, and there's very little value to be gained from module_mapper_t being stack-allocatable. This CL hides constructors and instead offers a static API that returns a unique pointer.
Issue: #3129 (closed)