Incremental search and history browse change.
Adds incremental search (bound to ctrl-k for reverse and ctrl-s for forward). Reverse search searches most recent to oldest. Similar to read_line ctrl-r (ctrl-r was taken by vi binding), main differences are that up/down keys move in search and searches wrap.
Also changes history browsing. If something has been typed then up/down will only browse through history that starts with those characters. Wraps on up but not down (puts you back to your starting point).
Running rustfmt seems to change a lot of code other then mine so leaving out for now for clarity but obviously will run if requested. All tests should pass.
Closes #2 (closed)