Fix click-to-line behavior in the interactive UI (no-op without a filter,
correct row math when the log hasn't filled the screen) and add a hover
highlight, a persistent pin on the clicked line, and always-visible process
create/death separators so filtered runs stay distinguishable.
Logs now render in a full-screen view above a bottom prompt line when both
stdin and stdout are a terminal; typing live-filters the scrollback to lines
containing every typed word, case-insensitively. --plain restores the
previous streaming output, and piped usage is unaffected either way.
Also finishes the Python 3 port that #177 and #173 started:
- print(linebuf.encode('utf-8')) printed the bytes repr of every line instead
of the line itself
- named_processes was still a lazily-exhausted map() object after #177
wrapped catchall_package in list()
- piping adb logcat into pidcat crashed, since FakeStdinProcess read
sys.stdin (str) where the rest of the script expected bytes
- indent_wrap could hang given a non-positive wrap area
- the shebang invoked python, which does not exist on systems that only ship
python3