Merge changes from topic "perfettoprotologimpl-refactor-processed-and-unprocessed" into main

* changes:
  Fallback to a NoOp ProtoLogImpl when viewer config is missing
  Ensure we always de-duplicate groups on ProtoLog init
  Wrap ProtoInputStream in autoclosable class
  Simplify nested logic
  Don't try to log to logcat before the service is ready to trace messages to logcat
  Update PerfettoProtoLogImpl constructor usages to use unprocessed and processed implementations where relevant
  Update tests
  Implement unprocessed version of PerfettoProtoLogImpl
  Create ProcessedPerfettoProtoLogImpl class
  Turn PerfettoProtoLogImpl class into abstract class to support both a version for processed and unprocessed protologs