make uglify default goal
lint src_skip sources
caught missing ;
precalculate dt row sums

when worker gets set_dt, it calls dt.row_sum()

dt.row_sum() with no arguments now runs along the whole matrix and gives
row sums for all rows. This is then stored and queried for dt.row_sum(d)
calls. This looks like a considerable speed improvement on the PMLA
k = 64 model.
no topic-plot flicker when de/selecting year

TODO make view.updating() less of a mess. This'll do in the meanwhile.
possibly? fixed grid view Heisenbug

by enforcing a keyed data join. However, can't consistently reproduce the bug right now in the old code.
suppress txition on grid/scaled load

that is, no gratuitous circles flying out from (0, 0).
no zoom in grid view

until I decide to add circles that you can actually zoom in on to reveal
more words, the zoom on the grid is just interactive chartjunk. So
zoom/pan is enabled only for the scaled view.
actually disable zoom on grid

a source of truly fascinating effects when it tries to apply
the zoom from the scaled view (with whatever were the last scale states
in that view) to the grid. Get rid of that by nulling the zoom listener.
words in circles: nested data bind is better

silly big gs.each() call was not necessary. Just use a function in the
data bind for the text elements for each topic.
TODO: note on zooming words
grid view help text

model subview help text showing/hiding fixed in main model_view().
fix doc_view id typo

the doc_view table header will now be hidden appropriately.
zeroth draft of settings
navbar: settings link
VIS.doc_view parameters are no longer used
factor settings view out

remove increment settings; step=1 is fine for number controls.

TODO: model_view_list needs to be refreshed after settings change
view.model.list regenerate topic word cells

since the user can now change that setting.
don't hardcode settings properties
settings tracks loading state