Consume once fns when calling them (#2549).
Permit moving out of captured upvars in once fns. Close #2549.
Add tests for once functions (#2549).
Hide the once-move-out privilege for stack fns behind '-Z once-fns'