This adds a button that can jump to the bottom of the log view.
If the user scrolls up we now disable the auto scroll down and show the
down button. When the down button is clicked the auto scroll resumes and
the button is removed.
Logs will be maintained and appended even when the main UI is not bound to the service.
This also lets us log without filling a Handler with a bunch of messages we might just throw away anyway.
This changes lets us use the latest UI design from Google, Material 3.
Google only provides the material UI 3 themes for compose, compose only works with kotlin.