ui:  trim displayed matches

Only show matches with a score greater than zero once a query has been
entered.  Also only return positively scoring matches from
FuzzyMatch.top_matches()
ui:  replace function decorator with contextmanager
ui:  pass ncurses screen to SimplePager
core:  add file library update to FuzzyMatch

Allow the library to be updated after the FuzzyMatch has been created.
ui:  move FuzzyMatch to be owned by SimplePager
ui:  swap closure for class attribute
ui:  move max_y to SimplePager attribute
ui:  move search to SimplePager attribute
ui:  move screen update to private method

Also store line number rather than recalculate.
ui:  cleanup matches printing
ui:  remove unnecessary super call
ui:  use getch and keyname

With curses.nonl(), getch() combined with keyname() makes things a bit
more readable and will make custom binding easier in the future.
ui:  separate selection and prompt windows
ui:  only update windows when necessary
ui:  handle arrow keys

Show the cursor and allow moving it back and forth with the arrow keys.
Insert and delete now take place at the cursor location.