studyYear coercion and grabbing sha from PUT
candidate tree of synth as list.
making docs for services
update markdown docs
Merge branch 'api-documentation'
Fix for unnamed internal nodes with one child.

These were breaking tree view, e.g., the unnamed parent of just Passeridae.
Change default OTU filter to 'In all trees'
Change label "Species within this clade" to taxa
Merge branch 'master' into coerce-and-sha
Refactor createNexSON into existing functions...

Moved validation/coercion logic into the existing
scrubNexsonForTransport function, and restored the previous
inline creation of simplified nexml-parent object.
Coerce edge lengths (floats) to reliable strings.

This matches the server's expectation that we're using floating-point
values, effectively reversing Javascript's implicit conversion of (for
example) 3.0 to 3. But to do this reliably, we need to save and transmit
strings instead of floats in our outbound Nexson. Lesser of evils?
Merge pull request #276 from OpenTreeOfLife/coerce-and-sha

Some refactoring applied, since we need Nexson in other situations.
Standardize AJAX contentType (JSON) to add UTF-8
Merge branch 'master' of github.com:OpenTreeOfLife/opentree
Force any string @length values to JS numbers...

This assumes that the new peyotl will recognize "ints" and accept them
as reasonable edge-length values.
Merge pull request #282 from OpenTreeOfLife/coerce-edge-lengths

Coerce edge lengths (floats) to reliable strings.
Clean up diagnostic messages.
Redirect all API links to our 'opentree' wiki page