Lps 40533

Hey Mate,

Here's the latest. I essentially refactored the update logic to make a clearer distinction between enabling and disabling each staging type. Defining transaction boundaries and what to rollback was very difficult with the old logic since we're dealing with some actions that we cannot roll back (disabling local staging, updating remote settings). Later on we really should split this class into multiple classes (eg RemoteStagingImpl and LocalStagingImpl).

-ed