Search speed: use range (not LIKE) for completion

SQLite doesn't care if the wildcard (%) is at the end or not: using
a LIKE query always requires a full table scan. After replacing the LIKE
with a range (`x LIKE abc` --> `(x >= abc AND x <= abd)`), the query
planner can make use of the index. This speeds up initial file id
lookup, and is possible because our search terms have uniform case.

see: Expressions in
     http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.htm

related issues: #105, #134