ENH: Major revision of the Statistics system

Statistics class (and its subclasses) are used to define the message
protocol between nodes. It defines the statistics that are sent from a
parent node to the child node. It can be used to define conversions from
a node type to another and to compute statistics for fixed values (e.g.,
for Constant node).

The initialization of nodes converts parent nodes to correct type
automatically by using this system. It also converts non-nodes (e.g.,
numerical arrays) to constant nodes with the correct output.