Add and use ExpressionNode.

This removes the virtual method type() from Node, and places
it in ExpressionNode.