Final changes and fixes prior to project defense

Most noticeable change is added caching for search (each page's results
gets cached).