Optionally prompts the user for which of the provided packages should be saved, and then additionally prompts the user to check-out any of the provided packages which are under source control. If the user cancels their way out of either dialog, no packages are saved. It is possible the user will be prompted again, if the saving process fails for any reason. In that case, the user will be prompted on a package-by-package basis, allowing them to retry saving, skip trying to save the current package, or to again cancel out of the entire dialog. If the user skips saving a package that failed to save, the package will be added to the optional OutFailedPackages array, and execution will continue. After all packages are saved (or not), the user is provided with a warning about any packages that were writable on disk but not in source control, as well as a warning about which packages failed to save.