Reuse the same receipt trick from iOS. Also, fix a regression in IAPManager.fetchLevelIfNeeded() from #903, where a guard after an await was dropped leading to reentrancy issues.
Refactoring: - Split tests - Report purchase to receipt reader (real impl does nothing) - Abstract BetaChecker from now TestFlightChecker Bugfixing: - Fix duplicated code in fetchLevelIfNeeded() - Fix observeObjects() missing .didUpdate publisher
- Move and rename entities - Split protocols and default extensions - Move in-app entities to CommonIAP target