First pass at removing KO mapping and observables

By removing observables within the 'nexml' element (Nexson data proper), we sidestep most of the performance penalties and browser crashes for large studies. The price we pay is to re-frame some logic (esp. for reading and writing Nexson values) and to set up a system of explicit "ticklers" to trigger recalculation and UI updates. This is in progress now, with working study metadata.
Moving non-Nexson vars to query-string for save
Much faster way of filtering OTU list by tree

This looks funky, but is waaay faster than the old method, which checked node IDs individually in each tree, for each OTU. Now we build a temporary (very large) associative array whose properties are the OTU ids for matching trees, then check for the existing of these properties. See the abandoned branch 'new-ko-mapping-plugin' for slower (tested) alternatives.
Dynamic page headings, based on live metadata
Working on tree display for huge trees (ongoing)
Adding fast lookup of Nexson elements by ID

The "fast lookup" feature is a major speed-up when analyzing tree structure, eg, when preparing for a tree display in d3. Note that these should be cleared and rebuilt explicitly if the underlying data changes.

I've also cleaned out some other obsolete code. Still working on tree-draw and -refresh performance for the very largest trees. Current focus is on optimizing the d3 phylogram script.
Dynamic height for tree. Fix for no branch lengths.
Updates and fixes for supporting-files UI.
Improved OTU mapping behavior (ongoing)
Merge branch 'master' into removing-ko-observables
Revised Nexson payload for PUT (save) method
Adding missing study metatags

Adding ot:focalCladeOTTTaxonName, ot:notUsingRootedTrees, ot:notIntendedForSynthesis. Plus supporting logic, working checkbox bindings, and bug fixes to related quality tests.
Fixes for remaining OTU mapping UI
Merge pull request #194 from OpenTreeOfLife/removing-ko-observables

Refactored to handle very large studies