Correct order of adding LOG/NFLOG rules to prefer LOG rules when available
Remove unnecessary checkRules() check for removeRules() in  addRules() since removeRules() already does it
Don't add new-line to commands unless one is not present
Add functionality to read remaining lines after command has exited
Add debug logging to track sent commands
Refactor startLoggerCommand() and killLoggerCommand() to remove `ps` dependency

For some strange reason, the Android toolbox `cat` command shows up as `sh`
instead of `cat` in /proc/cmdline and `ps`.

This has led me to investigate an alternative method of tracking and killing
the logger process, which brought me to discover that running a bash process in
the background sets the bash variable $! to the pid of the backgrounded process.

Now we no longer need to parse `ps` output to hunt for the logger's pid, which
could have potentially been error-prone. This background method should be much
more reliable and efficient.

Add extra debug logging to trace InteractiveShell