fairly complete reworking. Two big advantages are that Changes are now
an Impulse happening at a location, and that the code for compiling the
network and evaluating changes is much simpler.

The big disadvantages are that the stuff around mapping dictionaries is
(still) ghastly and there seems to be some IDs allocated that shouldn't
be in the value of a mapped dictionary