Use sync, not local, storage for values

Dogfooders were complaining about two related things:
1) Consent survey popping up on all computers
2) Consent/setup values not propagated between computers
[ See #129 ]

This tries to fix that by doing the following things:
* All storage is now sync, not local.
* For existing users who are getting an update, migrate the important values from local to sync storage.
* When consent/setup happens on one device, it will close the consent form/setup survey on other devices.
Since sync storage API is still async, is it possible for this scenario to occur?
1. No consent is received from sync yet, so the dialog is shown.
2. The sync API starts returning values when the dialog is shown, closing the window.

Or would the code always reach here after getting some sync data, eliminating this race condition?