Simplify typing of Nodes.

Half of the Node implementations can be a SimplyTypedNode which greatly
reduces the boilerplate. The other half at least benefits from a split
of nodeWithComputedType into nodeWithComputedType (which is final)
and the abstract nodeWithComputedType2 that they have to implement.

The new Node.nodeRebuildOrThis helps with the individual implementations
of nodeWithComputedType2.