Add Webpage tests to Live Editor

Summary:
A complex series of changes went into this diff. First most of the test logic had to be moved around as much of it was PJS-specific. Then much of the testing internals were re-formulated so that the main OutputTester could be sub-classed (into PJSTester and WebpageTester, respectively). New testing mechanisms were added for testing the HTML in webpages.

I recommend looking at `webpage-tester.js` and `tests/output/webpage/assert_test.js` for examples of how the Webpage testing is done.

Test Plan: All the tests pass! (For both Webpage and PJS)

Reviewers: pamela, brian

Reviewed By: brian

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13108