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
move definition of POINTMAP to own file

1. This commit finalizes the move of the POINTMAP variable from responses.js to
   its own source file, pointmap.js (where it is less obtrusive).  The code in
   pointmap.js defines a global namespace object, hmslincs, and defines the
   POINTMAP variable as a member of it.  (See code comments.)

2. The pointmap.js script is loaded by the responses/index.html page, right
   before it loads the responses.js script.

3. The pointmap.js script is automatically generated by the deploy script
   (through do_scatterplot.sh).
add header row to popups
remove stray backup file
Merge remote-tracking branch 'hmslincs/dev' into dave-sean-dev