Refactor Network Tracing into separate data source

This splits the polling and DataSource aspects into separate classes
in preparation for making polling a singleton. This change is not
expected to change behavior.

Note:
* OnSetup saves the poll duration and passes it to Start to simplify
  the Poller's life cycle.
* OnStart's handling of mTaskRunner/Loop is moved to the end of Start.
* OnStop's handling of mTaskRunner is moved to the end of Stop and Stop
  is changed to continue on failure (so that the task runner is reset in
  all cases as it was before this change).

Bug: 246985031
Test: atest libnetworkstats_test
Change-Id: I521eb50cd00916aa4d98174f0db461508b532732
3 files changed