Tidy up client-side code.

* Fix bug where parameters would be dropped -- merge() is lazy and performs
  a shallow merge, and thus is destructive in this use case. (Ab)use mix()
  instead.
* Moodle-ise the module to allow reuse. Move init() to initializer() and
  move the init function to M.mod_code.init_editor().
* Move initialisation code into more logical locations.
Add Genericons.

GPL icon font, will be used on the editor "toolbar".
Begin adding buttons to the toolbar.
Ever growing todo list...