Plumb Android events for when we fail to apply settings

In !1416 (merged) I'm adding a modal dialog which shows on desktop if the user settings fail to apply. This is shown in response to the TorSettingsTopics.ApplyError signal.

We should have an equivalent event on Android.

Note, when calling TorSettings.changeSettings there are two distinct sources of error:

  1. Errors that occur prior to the settings being saved. For example if the proxy.port value is out of range. These are considered coding errors, and the caller should be responsible for ensuring this does not happen. So there should not need to be a mechanism to warn the users in this case.
  2. Errors that occur after the settings have been saved. This should only happen when failing to pass on the settings to the provider. This is what the user notification is for.

In addition, there are other circumstances where settings are applied to the provider without calls to changeSettings:

  1. At startup.
  2. When using connect assist, the successful Moat bridges are saved.
  3. When the TorProvider is replaced. I.e. the tor process is killed and replaced.

As such, android should respond to the TorSettingsTopics.ApplyError signal, rather than catching the changeSettings error. Moreover, the error signal can be sent when the user is on any screen.

If you would like to both listen to TorSettingsTopics.ApplyError and catch the changeSettings error, let me know and I can change the TorSettings implementation to help you avoid duplicate responses.

/cc @felicia @dan @clairehurst

Edited by Pier Angelo Vendrame