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.
We do already use jquery in dashboard i think. Using it in blockly might just mean (a) loading jquery in the headless dev version (trivial) and (b) getting things working with mochaTests (potentially less trivial, but wouldnt be too difficult i dont think)