Replace template-based void_cda::overlapping_move_constr() with type-erased version

This will avoid generating multiple definitions for this non-tiny function.