Add basic support for units

Test Plan:
test.html
update .arcconfig to https
Basic unit support.

Test Plan:
test.html

> Tests completed in 2316 milliseconds.
> 966 tests of 966 passed, 0 failed.

Reviewers: aria

Subscribers: alex

Differential Revision: https://phabricator.khanacademy.org/D14862
Add / fix more tests.

Two big changes here:
* in `compare` we make sure the things have the same units (still some
  more work to do this properly)
* we no longer allow prefixes on every unit

Test plan:
KAS Browser Tests! (one still fails)

Auditors: alex
Add unit parser.

It makes things simpler all around for the unit parser to live in KAS
rather than perseus.

Test plan:
KAS Browser Tests: 969 test of 969 passed, 0 failed.

Auditors: alex
g -> gal

Because g means grams.

Auditors: alex
Compare standalone units.

I.E. without a coefficient.

This will be important in restricting answers to certain units.

Auditors: alex
Return standalone units from parser.

Auditors:
alex
Add a simple solver for linear equations.

Test Plan:
```
var a = new KAS.Eq(new KAS.Mul(new KAS.Float(2.5), new KAS.Unit("cup")).simplify(), "=", new KAS.Mul(new KAS.Var("x"), new KAS.Unit("gal")).simplify())
a.solveLinearEquationForVariable(d.asExpr(), new KAS.Var("x")).print()
"5/32"
var b = new KAS.Eq(new KAS.Mul(new KAS.Float(2.5), new KAS.Unit("gal")).simplify(), "=", new KAS.Mul(new KAS.Var("x"), new KAS.Unit("cup")).simplify())
undefined
b.solveLinearEquationForVariable(d.asExpr(), new KAS.Var("x")).print()
"40"
```

Auditors: joel
Remove magnitudes from form equality tests.

Test plan: KAS Browser Tests all pass

Auditors: alex
Teach KAS to solve for variables in units.

Test plan: All browser tests pass (except for the teaspoon one).

Auditors: alex
Use rationals where convenient.

This fixes the teaspoon solving example which had failed due to floating
point error.

Test plan:
All KAS Browser Tests pass.

Auditors: alex
Remove unused function.

Test plan: None

Auditors: alex
Be more careful with numerical equality.

These changes are all motivated by the necessity of preserving the
exact number of significant figures from the user's answer.

Test plan:
All KAS browser tests pass.

Auditors: alex
Fix scientific notation and unit comparison.

Scientific notation has been known to not work. Now the parser is tested
in at least a few cases.

Unit comparison was also completely broken (surprise!). I made it so the
exponents on units are actually checked. Noticed this when "N" and "J"
were supposedly equal.

Auditors: alex
Merge branch 'master' of https://github.com/Khan/KAS into units

Conflicts:
	src/nodes.js