Changes to uploader to reflect data format changes.

Changes:
- Use 'title' field instead of the key for locationText and personText
- Read the span for a person from the 'span' field instead of the whole value
- Don't upload the 'html_fragment' field at all

This could need further changes if I missed something here.
Automated query testing.
Fixed bug that broke pagination when when no limit on results to count over was set.

I discovered this in regression testing. It should only have effected the querydb tool and not the actual backend (where limits are set by default).
Typo fix.
Merge branch 'master' into whoosh to get query testing setup
Better normalization for comparing results in testing.

Numeric Json values can be quoted or unquoted.
Fixes to handling of keyword list separators.
Factored out Whoosh keyword field list handling code.
Various fixes to match the SimpleDB query handling; some improvements to query testing system.

Regression testing versus the latest SimpleDB backend on 1000 events randomly chosen (with sort -R) from the current data now passes up to the following:
- Pages of description results past the last (eg page 11 if there are only 10 pages) return the same results as the last page (but have 'more' set to false as expected).

And the following small differences:
- Differences in tie breaking (I've checked these differences by hand as much as possible).
- One case of numeric rounding differences in clustering.
- The Whoosh backend does not clip description fields.
- The Whoosh backend does not always quote numbers in JSON where the SimpleDB backend does.