Closes#1235
This commit introduce a pretty big change on how app data files are
managed. Instead of having multiple `accounts.json`, `settings.json`,
`user.json`, `countervalues.json`, it now store everything in a single
`app.json`. And it does it in an *async* way, so it should prevent some
frame loss.
Migration will be seamless, and will keep `accounts.json` encryption if set.
So no user action is involved.
This changes comes also with some simplification on password handling
(e.g: no more need to store password hash).
/!\ Disclaimer
During development, I ran about a weird issue (~ 3 or 4 times) when my
data was simply "erased" in the file, so back to onboarding, no more settings,
etc. I suspect race/write condition, something with write-file-atomic, but I
didn't managed to reproduce, everytime I tried. Anyway, I feel not 100% confident
with it, so if you guys can test on your side, with your data (with encryption
key or not) it will help a lot!
- bugfix that if your log file reach 20Mb the exported log is not the correct one
- make the log files rotate to a gzip
- include APDU in logs
- blacklist some commands that was producing way too intensive logs
- don't log the redux action anymore. it's not that useful and way too verbose to log
the code is equivalent except errors thrown don't get decorated back into an 'Error' leading to imprecision
we'll need to double check all is fine but this will *make errors great again*.
this is really an antipattern we have to avoid.