Implementation for PowerShell/PowerShell-RFC#391. A few implementation decisions:
1. Check the package manager list only once per process (**same as CMD**). So, changing the package manager list in registry doesn't affect a PowerShell session that is already running.
2. When detecting user/system PATH value changes, only check new items PREPENDED or APPENDED to the original string (**same as CMD**). The detection is made simple, which is not intended to detect complex changes to the user/system PATH.
3. The PATH update feature is disabled when the `Environment` provider is not available, or when the current session is restricted.
- Both `Environment` provider and `IsSessionRestricted` are checked only once per PowerShell session.
- Use `ConditionalWeakTable` to cache whether the feature is enabled or not for a given session.
- We cannot use `thread-static` variable for the caching because it's possible for Runspace to reuse threads.
Always use the v5.1 `$using:` logic when dealing with any connection type that is not based on the `WSManConnectionInfo`. This allows the caller to use the more advanced `$using` features like variables with special names, having `$using` vars inside sub scopes, and more. `WSMan` based connections might still communicate with older versions but as the oldest supported version is v3 on Server 2012. We don't need to keep the default as v2 (which has been deprecated) to support some of the newer features.
* Fix code PATs
* Fix feed PATs
* remove gallery commit
* update feed url
* Update to new variable groups
* Fix Variable name
* Fix credential template
* Disable Signing setup in prep stage
* Capture nuget source list
* lock down the firewall
* Add creds to feed switch to allow single switch location
* Use switch from build.psm1
* Use switch template instead of commands
* update to test feed
* disable codeql in jobs where we don't compile
* disable code sign validation for prep
* move capture steps to restore phase to see if it speeds things up
* remove duplicate capture of nuget config
* update test service
* Only build windows test service on windows
* warn when no config is generated
* try to fix test service
* fix web listener refs
* try removing dotnet tool
* update feedname with user info
* update package version that is not found
* try moving failing jobs to restore phase
* allow nuget inset in either phase
* update package ref
* use the right reporoot
* Move everything to restore
* Try adding build phase
* put nuget files in the right place
* move bootstrap into yaml
* remove onebranch agent items from macos build
* switch to environment variable
* bump a couple of packages
* fix formatting
* Fix static analysis issue
* update feed url to test restoring everything
* install the AzFeed cred provider
* fix binlog issues