Separated the parser-typer into (lib/) and the interpreter (interp/).

This separates the parts usable by the compiler into an independent area.
Fixed the ugly markup in the Bytecode documentation.

Also removed the paramater of PUSH-SCOPE (since the VM creates the first
scope from scratch, there's no point to creating a scope without a parent).
Fixed some more bytecode markup and modified the instruction definitions.

Now the VM will have a notion of 'closures' which can be executed and have
their own scope, to provide proper lexical scoping.
Added a master list of instructions to the VM.

This should make the instruction set less rigid and easier to modify in
the future.
Added the work necessary to get the VM closure support working.
Made the sample program for the assembler use closures to test them.
Added comments and the basic variables to the assembler.
Moved the assembler tests into the directory with the VM tests.
Renamed 'fd' to 'pid' to be more correct.