[#961840] Remember state of case checkbox

- Store in cookie last state of case checkbox
- Add jquery.cookie plugin
[#961840] Remember state of case checkbox

- Store last state in localStorage
Upgrade Jinja to get the filesizeformat fix. Fix bug 965773.

Jinja now depends on MarkupSafe as well.

Add python-dev headers to the VM so we can compile the optional MarkupSafe speedups.
Change .panel's position from absolute to fixed.

It will be more usable with long files.

Here's two test cases:

* http://dxr.mozilla.org/mozilla-central/source/js/src/jsdate.h
* http://dxr.mozilla.org/mozilla-central/source/js/src/jsdate.cpp
[#961840] Remember state of case checkbox - Fix for url caseSenitivity param
Limit the nav panel to just short of the height of the viewport, and give it a scrollbar when it needs one.
Pin the nav panel. Close #244. Ref bug 968020.
Make the search bar prettier.

Add a highlight on the top, a gradient, and a shadow on the bottom. Mostly, it's just pretty, but the dark border on the bottom makes it a tiny bit less surprising when the scrolled content goes behind the bar: it's easier to see the boundary.
Factor out caseFromUrl().
Merge localStorage-based preservation of case-sensitive checkedness. Close #243. Fix bug 961840.
Add some missing semicolons.
Move error messages to a bubble between the search field and the content area. Fix bug 972947.

The bubble solves the problem of where to put a message without expanding the search pane, either permanently (which would waste vertical space, which our users are sensitive to) or on demand (which would distractingly kick down anything in the content area and then bring it up again when the message clears).

Also...
* Add an advisory message when you enter a query of < 3 chars.
* Fix the multi-error appends.
* Move the generic error message out of the template for now. We aren't yet internationalized, and it trims down the size of a zillion generated files.
* Bump format version, since we need the new bubble div in the template.
Move "direct result" message to a bubble. Fix bug 970489.

The "simple" class is no longer used.

Make "from" querystring param test better (but still not great).
Put the query into the query field after loading direct-result pages. Make "from" querystring param detection good.

If the bubble's going to point at the field, the field ought to contain something relevant.

Worthy test case: "main" (with quotes, to test URL decoding)
Don't complain about the empty field after you've typed 2 chars, caused the bubble to show, and then deleted them.
The warning, while perhaps technically accurate, makes me think something is seriously wrong and raises my blood pressure.

I think of it like this: if you type in a bad regex, you did something wrong and deserve a warning symbol. If you just type a short string, it's our fault--a technical limitation--that you can't get an accelerated search out of that. This bubble should be more like an apology than an accusation.
Remove dead removeUserMessage().
Make the no-results message more visually subtle. Fix bug 965650.

Also change the class name: the only use of this template left is saying "no results". A future bug will factor out all the repetition and improve the message itself.
Remove all the unused Jinja blocks from layout.html. Also remove some unused HTML elements and fix whitespace.
testing.TestCase is abstract; it won't work unless _config_dir_path is filled out.