* Add OnNewConnection to AppProvider
* Cache cluster IDs
* Pass installation ID to tsh daemon
It will be needed to report usage events straight from tsh daemon.
It used to be available only in the Electron app which sent this ID
with every ReportUsageEvent RPC.
* apiserver.New: Create listener after services
This way if initializing a service fails, we don't create a listener
unnecessarily.
* GetCachedClient: Rename argument to clarify usage
* Report usage event on VNet connection
* Remove debug log when app was already reported
* Reuse context in tests
* Extract fake web proxy setup to separate function
* usageReporter.ReportApp: Use background ctx instead of TCP conn ctx