Part-way to writing memory

We're getting a NULL pointer in vm_set_memory_region,
but part of it is working.

I have moved some of the infrastructure over to error()/waserror(), and
I'm now remembering why I like getting useful error messages
instead of the conventional UNIX bring-me-another-rock
behavior of EINVAL.

Signed-off-by: Ronald G. Minnich <rminnich@google.com>