Calc expression node

Not sure how in depth a look this needs. Feel free to take as deep/shallow a look as you like.

Some changes in behavior to Calc app.  In particular:
- (1 + 2) and (2 + 1) are now treated as different. We'll give you an error message telling you that they're equivalent, but not the same.
- We'll animate both the user and answer expression. When collapsing a leaf expression where they differ, we'll stop evaluating and give them a continue button.
- A significant code change is to have ExpressionNode (formerly Expression) also handle numbers, this makes handling leaves easier as left/right are always either null or an ExpressionNode.
, rspec `it` statements are typically the ends of sentences starting with the describe word, e.g. in this case, `ExpressionNode`, `can be cloned`