Rewritten search for better performance and user experience.

Search is no longer performed on each request, but rather once and then
results are cached.

- correct message for no search results (issue #219)
- allows to go back in translated strings (issue #229)