Refactor node-map to pallet.node

This avoids a circular dependency in pallet.core.operation if it tries to
use pallet.core.data-api.
Serialise :old-nodes in converge results

The old nodes are not accessible after they have been removed, so serialise the
node information before they are destroyed.