[common] adds move_if function, modeled after std::copy_if
[common] make valueRange usable with enumeration types