Implementing simple tab model.

* Tab has a string ID and an associated jQ-wrapped (set of) DOM
  element(s).
Rough tabbed editor implementation.

* Switches between fairly generic 'tabs', each of which has an
  associated DOM element containing its content.
* Implementation's a bit of a mess at present.
Implementing coordination between tab groups.

A new 'coordinator' ensures that only one of the registered viewers can
display a tab with a particular id at any one time.

The page load is a mess so it's not all beautiful out of the gate at the
moment, but with a bit of clicking the behaviour can be observed.
Throwing in some CodeMirror'd tabs.

HTML, CSS and JS tabs with appropriate highlighting.
Now the 'Result' tab works.

* Introduced a concept of a 'switch strategy' for the tabs, which allows
  custom behaviour for different types of tab. Initially this seemed
  like a pretty good idea, but now I'm not really sure we need it. Will
  take a look at some point.
Now you can 'Run' your work!
Merge branch 'f-editortabs'

Merge to master requested by mattlunn to improve functional state and aid
testing.