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.
Add proper heights to wrapping parens

Start implementing some of Ned's comments.
Add tests for preview.py

Test the `render_X` methods as well as `latex_preview` on the whole.
Add a few 'pragma: no cover's to hide unreachable code from coverage.
Change a few tests to use `with self.assertRaises` for readability
Fix spacing of comments (pylint)
Reorganize some of calc.py into a class `ParseAugmenter`

Holds the data for a particular parse (i.e. instantiated with a math
string and eventually holds a tree and sets of variables as well).
Add docstrings
Make preview.py work with new scheme
Add docstrings to preview.py and test_preview.py
Cleanup; add unicode test
Comment fixes
Some code fixes

Change some `is` comparison to `==`. Also, modify the `render_atom` method.
Enable the new input type for NumericalResponse
Initial commit of user documentation
Convert all usage of textline to formulaequationinput going forward

Especially, the defaults in studio to use formulaequationinputs and some of
the documentation and examples.
Change the userdocs entry about problem types to talk about formulaequationinput
Various and sundry changes to comments and whitespace