Parser for binary logcat

Due to Android's tty settings, every new line character (0x0a) is
escaped by a carriage return (0x0f 0x0a). This is annoying for text
output, but it downright corrupts binary output. Add a function to read
a binary stream tainted in this way, throw away the extra carriage
returns (while keeping legit 0x0f characters), and parse the data as a
logcat entry.

Logcat entries contains the emitting process' pid and tid, the timestamp
when the entry was printed, a level (Warning, Debug, ...), a tag
(PackageManager, installd, ...) and the actual text message.

Caveat: logcat can produce two versions of its binary format. This
implementation only supports the first version. See struct
logger_entry_v2 in Android's system/core/include/log/logger.h for more
information. The two versions are very similar and adding support for
the second version should be trivial if need be.
Introduce live logcat data

Populate the session ring-buffer with data read from logcat. Update the
lokatt executable accordingly.

Caveat: the current implementation uses a naïve approach for launching
adb by assuming adb is in the user's PATH and that at most one device is
connected.