Reimplement list searching on top of http API

The new archives has a http api - use that one for searching instead
of directly talking to the database.

With the new API, we always fetch the complete search results (still
capped server-side at 1000 items), and store them locally in memcached
for 10 minutes. That way, paging will only hit the local memcached and
not the remote http api *or* the SQL api.
Attempt to set a 20 second timeout on searches
Don't use pylibmc behaviours, not supported in the version used in production
Generate search hits using new URL scheme
Support redirect when we get a messageid hit in archives search
List id is not used in the template, so remove it

Since messages are no longer tied directly to lists, it makes no sense to
show which list a message belongs to.
Show a nicer error on timeout of searches
Fixed typo in templates/500.html