This takes user feedback on the spacing and adjusts it
further.
The intention is to avoid a jump when the text line of the
sync status goes away, while not taking space for it always.
With the sync-state label being removed the whole UI used to jump, we
solved that by pushing in the labels a little based on the assumption
that they won't be there very long.
This cleans up and re-does the 'wallets' page, as it is named in the
menu.
This adds some features and inlines some not reused content but mostlie
redoes the UX to something more satisfying.
The Mnemonic object requires dictionaries that the lib doesn't ship,
but Pay does. So we need a different "constructor" to set those dicts
for the users of the Mnemonic class.
Now we make sure that setEnabled and loadSettings are always called for
each module info class, even if the save file doesn't have the relevant
properties.
This makes it easier to tie into the setup of the app.
The Wallet object used to have a guarenteed lifetime longer than the App
singleton, but then we started allowing people to delete their wallet
(argh!).
Also "external" modules, especially living outside of the main tree,
would be much more stable if they can avoid using raw pointers for core
concepts like the Wallet.
This adds a setting in the mobile client where the user to select to
prefer to start inputting the BCH value on payments (that require manual
input of price).
The default is to start with the user selected fiat value.
We notice a lack of DNS lookup and instead of trying all, we give up
quickly and realize that the most likely reason is that the Internet is
missing.
This avoids giving a punishment to all discovered peers.
Additionally, we recover better and show the password field in such
cases.
And on Mobile this adds a menu option to enable the password field for
better discoverability.