Add data relocation methods.

Should only be used by vm_state_t after copying a unit.
Implement vm_state_t::set_unit.
Add release_all_memblocks.
Release all prior blocks if the unit changes.

Also reset the block counter.
Implement bind_callback.

Also provide a bind_callback that allows specifying the length of the
name string.
Set _source_size and reset callbacks array.
Add cases for block_id 0 in get_block/block_size.
Have fetch() return the instruction to be executed.

Increments ip() and returns the instruction to be executed.

This should avoid odd situations where _trap is set unintentionally.
Fix up vm_state_t::run loop.

Was unintentionally skipping instructions.
Fix accidental swapping of LT and LE instructions.

Woops.
Fix sequence breaking.

Sounds odd, but that's what it is. call_function_nt doesn't need to
increment/decrement the sequence since run()/RETURN fulfills this
requirement already.

_sequence only needs to be touched by exec_call in the case of host
calls where there's no return instruction being executed by the VM to
decrement the sequence count. Arguably unnecessary, but it would seem
unusually inconsistent to not alter the sequence for a host call.
Add make_value for value_t.
Fix load_registers functions.

Complete misnomer now because they're not even touching the registers.
Will probably change that back pending future stuff. For now, it just
pushes call arguments onto the stack for the function to pop.
Remove value_of. Not needed, make_value covers all bases.
Fix incorrect pop call.

Was copying the head of the stack instead of popping the value off the
stack.

Default argument makes pops copy-only for who knows what reason.
Probably wasn't thinking when writing that. Next commit will fix that.
Make pop's copy_only default to false because WHY.