slightly better browser-about
zip instead of tarball for standalone
prepare new data format
javascript lint config
rproj support
cpsievert mention; readme update
loading graphic
major reorganization

Access to the model is now via methods on the model object. The data
itself is hidden in a private object known only to the methods.

The datafiles are now loaded incrementally, when the views that need
them are accessed. Probably not the best design, since the result
is a big delay on the first click-through to a topic. The actual loading
is via load_data(), which is called by the *_view() functions.

The model has setter methods that accept the string data from the files.

Some streamlining in the data formats: the metadata is now expected to
have only the columns that are actually used, and the doc-topics matrix
is expected in compressed-column format, which is unrolled when the file
is received. Not sure if this is the best strategy either.
got model insertion working again

also Makefile targets for the test models inserted into standalones

no more need for a stringified model; just use the datafiles directly
Makefile instead of make_standalone
use sparse dt instead of unrolling it

moved scraps of old code into tests.js, without actually writing tests

some possible glitches floating around on data loading...?

jsl.conf: allow labels, which I use in just one place
asynchronously load all data files from the start

but don't wait to render views: just display views as "loading" until
the data's there

FIXME: on the big test dataset, the script grinds to a halt
calculating row sums.
model() into model.js
tell jsl about model
prepare_model targets
precalculated doc_len

Because row sums are expensive. A new data file to load, and a new model
data member to check for in views (these checks should really be
abstracted, but oh well).
additional Make conveniences
testing 'framework' + dt_ok()
faster m.dt indexing

uses d3.bisect. Still a little laggy but not terrible on test_big, and
doesn't stall out any more (prob. thanks to the precalculated doc_len)
move all rankers into model object

in an attempt to gain back some speed, move the functions for getting top n
words, documents, topics into the model and make use of the sparse form
of dt where appropriate.

also did some clean-up to ensure that ties for last are respected in
each case: this is done via utils.shorten(), which lives in a new source
file, utils.js.