Split vm_state off into vm_thread.

vm_state now encompasses process-specific code, such as memory handling
and bytecode ownership and so on. It no longer handles any sort of
execution, so it has neither a stack nor registers. That's all been
moved to vm_thread.

vm_thread covers code execution. It reaches back into vm_state for
process stuff like memory, function pointers, and so on and so forth.

This currently isn't thread-safe just because memory access has zero
locks of any kind in place, so I'll need to add some locks around that
and anything else that might be modified during vm_thread execution.

So far, this confers no real changes to the code, it's just splitting
one class into two.

In addition, _types.h now covers general types that end up getting
included in one or more translation units that don't require anything
be included to access.

Also, vm_state dropped its _t. Other types will probably be following
suit pending some further reorganization (i.e., stuffing everything
into a namespace and so on).

I'm not sure yet whether vm_state will handle vm_thread allocation. For
now, it doesn't, but it'd be handy for interthread communication and
such.