This PR prevents Fleet from uninstalling a release that is in **PendingInstall** status, opting instead to attempt an **Upgrade**.
The following approach is taken:
* If a valid previous version is found, an **Upgrade** is attempted (which would trigger a rollback followed by an upgrade).
* If no valid previous version is found, the current release is patched to mark it as **failed**, and then an **Upgrade** is performed.
This avoids uninstalling any resources in cases where a previous release may have ended up in a stuck state.
Refers to: https://github.com/rancher/fleet/issues/4637
Backport of: https://github.com/rancher/fleet/pull/4600
Signed-off-by: Xavi Garcia <xavi.garcia@suse.com>