I feel like we discussed exactly this at dconf fairly extensively, with pictures and diagrams and stuff...
Just write `T move(ref T)` as an intrinsic.
There's potentially more work to do than this operation; the intrinsic will also (in the future) include internal logic to end the lifetime of the memory region, and possibly logic to record the transfer of ownership for the value. This is all not expressible in-language... it's most appropriate as an intrinsic; this is mega-fundamental stuff. Remember, the goal is to murder core.lifetime with fire.
We don't want a function for this, no call/ret, do not want to pollute the program flow in that way and definitely don't want to create weird program flow while stepping through code while debugging. Intrinsic that initially just strips off ref, and can be enhanced with lifetime management logic in future.