Added Stack Manipulation Opcodes

I added push and pop, as well as tests for them.  I also added the
method ClockN() on vm.VM to make it easier to advance the clock
multiple steps in tests.
Added lbp Opcode

I added an opcode to load the base pointer into the p register, so
functions will actually be able to access parameters passed on the
stack.
Added Bus Interface Opcodes

I added the wb and rb opcodes, which write to and read from buses.
They only work with hard-coded bus numbers for the moment.  I think
that will probably be sufficient for the expected use cases, but I can
revisit it if I find a good use case for run-time bus indexing.