Consistently use require() instead of a global variable, everywhere.

Summary:
* No more `Perseus.*` internal references! Or closures! Less overhead!
* Widgets now export normally, and are registered by `src/all-widgets.js`.
* Rule of thumb: One exported component per file, so a few files were split up.
* All testing files have been updated (including unit tests).
* The built `perseus.js` is now a standalone module and can be required.
* `Editor`'s list of public widgets is now in alphabetical order.

Note to self: I will need to make sure that `Perseus` is required everywhere
in webapp (when subperseus-ing) or else things will break. Use Justin's handy
checklist and don't forget Perseus i18n.

Test Plan:
Added all the widgets to test.html and messed around with them without errors.
Built standalone file, switched test.html to using that, and repeated above.

Reviewers: jack, justinjaffray

Reviewed By: justinjaffray

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