fixed persistence to cope with spaces

Previously filenames with spaces would create corrupt indices.  Now we
urllib.escape the filenames (and everything else) before writing them
to tuple files.  This guarantees that we can read and write arbitrary
strings, at the cost of minimal storage overhead.  I haven't measured
the speed overhead but I doubt it's large.
updated search engine todo
failed attempt to port search-engine to Jython 2.5

2.5 is the version of Jython that ships with Debian.  I was able to
get most of the way there by removing `print_function` (I wasn't using
it), `itertools.chain.from_iterable` (I didn't really need its
laziness), and adding a `from __future__ import with_statement`.  But
Jython 2.5's `GzipFile` isn't a context manager, so you can't use the
`with` statement to close it automatically.  Rather than write more
code to handle that, maybe I'll give up for now.
updated search-engine todo
search-engine: more text

Sticking the I/O code into the sequential-access section.