Don't mix "current dataset" tokens for different backup transports

Previously, one could poison the current-dataset tracking by
inopportunely-timed use of the local (aka development) transport.
Now you can't:  we reset the 'current dataset token?' tracking
whenever the user changes the active transport.

Also don't double-allocate return values sometimes.

Bug 37694618
Test: manual

Change-Id: I2cf5d42774522af830aecb99e65f43c4d0b5ce76
2 files changed