Save confidence values to node data JSON
Save confidence values to node data JSON

Checks for `confidence` attributes on BioPython trees (which correspond
to bootstrap support values from IQ-TREE, etc.) and disables annotation
of confidence values in the Newick output of the refined tree. Without
this last change, BioPython naively appends the node label with the
node's "info string" [1] that does not include a delimiter to separate
confidence values from the node label [2]. The results of this
concatenation are unexpected internal node labels like
"NODE_000000596.00" for a node named "NODE_0000005" with 96% support
from a bootstrap analysis.

By storing the `confidence` values from the input tree in the node data
JSON output from this command, users can visualize (or analyze) these
values from the final Auspice JSON including as a color-by in Auspice.

As part of this check for an additional attribute, this commit updates
the logic for collecting node data to only collect values of attributes
that have a non-`None` value when collecting node data for `augur
refine`. These values get dropped during `augur export` with a warning
message anyway and we already commonly use sparse node data JSON
annotations for other tree attributes.

Fixes #666

[1] https://github.com/biopython/biopython/blob/ae4b078/Bio/Phylo/NewickIO.py#L301
[2] https://github.com/biopython/biopython/blob/ae4b078/Bio/Phylo/NewickIO.py#L368-L371

nextstrain/augur,blab/nextstrain-augur,nextstrain/augur,nextstrain/augur