Reducing / disabling non-essential features and setting various build flags to optimize for small size.
x5 times size reduction.
Functional changes to common core SDK:
* Had to rename IStorage to IDataStorage, as IStorage is a macro defined in Windows SDK.
* Had to refactor user analytics feature storage (SDK UUID / install id) to utilize plain text file rather than FIFO ..
FIFO storage is a legacy structure, bloatware, had to be deprecated and removed going forward anyways.
It wasn't even present in v1 Aria SDK, but somehow slipped thru into v3..
Features excluded from lightweight SDK:
* JSON
* ZLIB
* ECS client
* SQLite DB (only ram queue, no offline storage)
* Transmit Profiles
Related work items: #1550785
Stats improvement:
* reduce priority from Critical/Realtime to normal
* reduce frequency to 1 event in 30 minutes
* reduce stats event size. Stop collecting histograms we never ever look at (and in fact block in our Kusto storage)
* rework the code to make it simple, avoid "copypasta" that previously plagued MetaStats.cpp
* use wall clock for stats event timestamp
* adjust tests to account for lesser number of stats event per session
* make per-tenant stats a configurable "debug only" feature, as it does not scale well for deployment in Office
* adjust PAL to properly return monotonic clock
Related work items: #1618463