Make "mov_op" take references

I think this is just correct: everything else takes a reference, so
this should as well.
Use "mov_op"s for most move operations
Define functions in a type-safe manner

Rather than just passing in the names of function arguments I instead
pass in "value"s for those arguments.  This allows me to refer to them
later in a manner that doesn't involve manually mangling the names
any.