BooleanNotNode::fromExpression()

Implements #146. This is a static method which takes any ExpressionNode and returns a new BooleanNotNode that wraps and negates it.