functional code graphs

I'd like to move back to functional data structures for the code
graphs. There is simply too much fuss with bookkeeping, so let's move
to functional types.
* Graphs: In order to make graphs in a functional language, one needs
to see the graph as an infinite tree. Such structures can only be
defined in a lazy manner. In scheme, this requires explicit use of
delay/force.
* Unroll the updates: It is necessary to write updates as different
data structures that refer to their parents. This involves:
- code compilation + linking (target-word-code target-word-next)
- assembly (target-word-address + target-word-bin)
Of course, thinking about it now, the reason this all is imperative is
that linking is simplified using the code -> word patch after
instantiation, and assembly is easy because the address and bin slots
can be updated multiple times.
Maybe this is a more sane approach: once code is marked 'old' it is
effectively frozen, and can never change (be re-compiled or
re-assembled). It is also completely concrete at that point, and
should be serializable to disk.
FIXED: made it a bit simpler, using separate *chain* and *bin* stacks
in pic18.ss
NEXT: 'upload-bin' seems to perform a binchunk-split, while this is
also done in pic18.ss : where is best?