Split private and non-private observation generation

Private and non-private observation generation is generalized such the
aggregation procedures for each only need to provide a way to encode
aggregated values as observations.

Bug: 303091672

Test: atest AdServicesCobaltUnitTests

Change-Id: I6d85e7d4ccd98dd0523b59c165f8583c6b6a598d
16 files changed