Repair intermittent slot alignment bug.

Recursive subroutines would sometimes have the wrong iptr in the assembler.
This could result in wrong code being compiled.  Always ensuring they start on
a basic-block boundary fixes this problem.
Fix getmem frame corruption.

The interface for getmem resembles a typical, non-recursive subroutine.  Up
until now, however, it was _implemented_ as a recursive subroutine because I
needed the ability to early-exit via rfs,.  When using getmem in an outer scope
then using getmem indirectly via a procedure in an inner-scope, this would
(intermittently) appear to cause wild branches due to frame return PC pointer
corruption.  Wrapping getmem inside its own 1 fp+!, / -1 fp+!, seems to fix
this bug.
Fixes two bugs with read (see log message)

(read) failed to decrement properly the SCB's sector field in the event of an
error.  As a result of a missing +, instruction, it was set to the value -1
($FFFF).  This had more than deleterious effects elsewhere in the code.

Finally (read) will return with 0 bytes read and a reason code of EEOF.
However, this will cause loadseg to fail with an EEOF "error".  So I adjusted
read to consume EEOF events and translate them to OKs.  That means that to
detect end-of-file with read, you look for zero-length returns.
Load segments of code from storage and dispatch to them.
First program to run using relocation!!