Add Expression interface for walking the tree

Every expression has a children() method returning sub-expressions to
accomodate for the case where some implementations may want to walk the
expression tree.