Background tracing: Simplify public interface and isolate trigger logic
Mostly mechanical preparatory patch to simplify adding new triggers to the system in the future.
* Since setting up scenarios by code is mainly used by tests, the public interface now only accepts dicts and all rule type information is moved to the implementation.
* Specific logic regarding specific rules has moved to background_tracing_rule_impl.cc
* BackgroundTracingPreemptiveConfig and BackgroundTracingReactiveConfig have been merged together and there's far fewer separate codepaths between the two modes in general.
Review URL: https://codereview.chromium.org/
1297813002
Cr-Commit-Position: refs/heads/master@{#345523}