Seperate out parsing from calc.py

calc.py:
-Create a method called `parse_algebra`. It takes a string of math and returns with a `pyparsing.ParseResults` object representing it.
-`evaluator` takes this tree and applies the old "parse actions" to it to get the same number as it used to.
-Change a few things in the parse actions (i.e. rename them to eval actions)
-Add `atom_parse_action`
-Add `find_vars_funcs` to aggregate used functions and vars in the tree
-Change strategy of `check_variables` to instead take the set difference of `find_vars_funcs` with the allowed ones
-Create `add_defaults` to take user defined lists of vars and funcs and return a combined list
-Change `x.setResultsName(...)` to `x(...)` for brevity

In test_calc.py:
-Fix a bad test (which expected something to pass that shouldn't)
-Fix indentation
Change calc's API: `evaluator` to use `case_sensitive` rather than `cs`

Double check that this does not introduce any errors. Also, get rid of old tests in xmodule (they are replicated in calc/tests/test_calc.py).
Create a new response type for Numerical/Formula

Named `FormulaEquationInput` (name up for debate)
-For the initial pass, just copy off of ChemEqnIn
-Add FormulaEquationInput in inputtypes.py
-Add a call to a skeleton method for a preview

javascript:
-Queue up some MathJax
-Put some ordering on the AJAX requests: add a parameter when the request was started, when it returns check that it isn't outdated before displaying the preview
Add most of the capability for latex rendering

This includes creating `render_X` methods for each branch. Create a class for
intermediate partially-done renderings.

YAY! It works! Mostly... and it needs tests.