replace nan with n/a in sp popups
add monospace font for sp tables
tweak events that remove popup
make popup rows fixed height
fix popup placement

Previous version did not properly account for scrolling; this version
also takes into account of all four edges of the viewport (not just
the right edge), uses more accurate values for the popup's dimensions,
and has clearer, better-documented code.
set /dev/null scatterplot's dflt output

the rationale arises ultimately from the fact that the figure object
returned by scatterplot.scatterplot will yield different pixel
coordinates depending on whether or not the expression

    canvas.print_png(outpath)

gets evaluated; this was a problem with the previous version of
scatterplot.scatterplot, it implemented the no-output condition by not
evaluating the expression above:

    if outpath:
        canvas.print_png(outpath)

the new version of scatterplot.scatterplot, in contrast, evaluates
this expression unconditionally; the new default value for the outpath
argument effectively corresponds to a no-output condition that is
consistent with this new arrangement.
remove bit of (harmless) nonsense
fix bug in scatterplot.pixels
make custom scatterplots for Marc
generate pngs of RTK networks
make path literals portable
tweaks to makexgmml.py