Allow a per-tree setting to specify the character encoding used by the source code.
Remove an assumption about how HTML encoding and character set encoding
interact at the possible loss of some efficiency.
Get a failing test. Support case sensitivity from the querystring to the Query object and in enough of the test harness.
order search results alphabetically
Update to a version of trilite that supports case-insensitive searches.
Add case-insensitivity support for negated text queries.

Factor up to create found_files() method in test harness. This comes in handy for making negative assertions about what's found: you don't have to brittle-ly list all the things that *are* found.
Add front-end support for case insensitivity.

* Switch from "1" to "true" for case-sensitivity querystring param, for consistency with the redirect param.
* Tighten the window of query-timing so it's just a tad less wildly uninformative.
* Rig it so clicking the Case-sensitive checkbox redoes the search.
* Factor out some repetition with regard to re-running searches.
Add some quick and dirty layout for the Case-sensitive checkbox to last us until the UI branch lands.
Add (and default to) case-insensitive searching for free text. Fixes bug 813524.

The checkbox does not, at the moment, affect structural queries.
Bump the format so the new case-insensitivity JS doesn't freak out when the built index pages have no case-sensitive checkbox to grab onto.
Merge ncameron's patch to make search results alphabetical by file. Close #196.

They were random before. Now at least .c files will come near their .h files (his use case). Someday, we'll have some kind of sensical ranking.
Put a hard limit on search results to head off an easy DOS.
Oops: min, not max
Allow a per-tree setting to specify the character encoding.  Close #165
Rewrite query timer. Fixed bug 950213.

* Listen to input event rather than trapping for focus and blur. This relieves us from having to poll and compare; instead, the field tells us itself as it changes. The behavior to expect now is that the query fires 300ms after you stop typing. For fast typists, this will result in fewer queries. As a bonus, we no longer have to keep track of the previous query.
* Quicken timer frequency to 300ms for consistency with old behavior. I'd hate for the UI refit to be perceived as less responsive.
* Refactor to remove repetition of min-length test and field trimming. Now doQuery() pulls straight from the DOM. It's called from only one place at the moment, so this is fine. If we want a purer function, we can extract it later from doQuery().
* Armor against out-of-order query responses using a serial number. Without this, you could type "hello", fire queries for "hel" and "hello", but end up looking at the results for "hel" if the responses arrived out of order.
Merge master into ui, mostly to get case-insensitivity.

Had to rewrite case-insensitivity for the from-scratch JS on the ui branch, but it's much nicer now.

Of note:

* Removed an unused (even before the merge) .case CSS selector.
* Twiddled the case checkbox markup to put the label tag around it, so we could apply "white-space: nowrap" and avoid the checkbox ever being abandoned on its own line as the viewport narrows.
* Bumped format version because the new JS expects a case checkbox with a new ID.