6 files you always hoped but never totally believed would leave khan-exercises

Summary:
Port from [khan-exercises](https://github.com/Khan/khan-exercises/tree/master/utils)/.

Files were switched from requirejs syntax to node require syntax.

A couple utilities in kline.js were removed.
`kline.equal` was reverted to an older version for now
because it was an external contribution prior to the CLA.
`kline.intersect` was removed because it used a different
api format than the rest of utilities in `kline`

kmatrix was removed because it isn't used in Perseus and is a
lot of legacy code from earlier khan-exercises. We can add these
back when we need them if they match CLA requirements.

Test Plan:
none. I'll be adding tests and refactoring these to use
explicit underscore dependencies in a couple commits
These 4 critical files don't work anymore. Learn why!

Summary:
Adds the test files from khan-exercises back.

These currently don't run, but I will add a commit
transforming them to use mocha+node instead of QUnit
in the future.

Test Plan:
broken
Can you figure out what these 4 changes mean?

Summary:
Not my best commit message. This changes the tests from using
QUnit to using mocha & node.js.

Test Plan:
Change the non-test files at the same time (to be committed
next commit), then run `make test`, and see that they all pass.

Auditors: alex
Can you spot the surprising missing dependency?

Summary:
Fix the kmath files that require underscore by adding an
explicit require statement. In Perseus, this will still
resolve to the global underscore via the tricks we use,
but this means these files are happily independent of
any globals. :D.

Test Plan:
`make test`
see they all pass!
look through the non-modified files and see that they don't
use underscore.

Auditors: alex