Add prereq to clean out old SDK when upgrading
The SDK layout has changed due to the new packaging format, so simply extracting the new archive over the old one will leave extraneous files around. To fix this, if we expect to make changes in the `archive.extracted` state, then completely remove the existing version of the SDK. Also, unlink the `current` symlink before making changes to an SDK to avoid processes inadverently using the SDK while it is being changed (the symlink will be restored once the SDK is done being updated.)