defer encryption
wait for decrypt during bootstrap
firewall stop: try to be much more robust in stopping the firewall whenever we can
bitmask-root: rip out all resolvconf code and simply rewrite all DNS packets to use the VPN nameserver.
bitmask-root: pep8'ed
Use better message for the initial sync.

Closes #5875.
Merge remote-tracking branch 'refs/remotes/elijah/feature/routedns' into develop
invoke mainwindow.quit only from parent pid
because the fork happens after the registration of the signal handler,
all children processes were inheriting the handler (and being passed a
reference to the mainwindow object, ugh...)
call soledad close
Merge remote-tracking branch 'refs/remotes/kali/feature/syncdb-adapt-3' into develop
Merge remote-tracking branch 'refs/remotes/ivan/bug/5875_better-initial-sync-message' into develop
Separate app.py and frontend_app.py logics.

This prepares the scenario to run the frontend and the backend in
different processes.
Add base communication framework.
Add API/SIGNALs definition.
Add license headers.
Use new frontend/backend structure in LEAP implementation.
Use new backend/signaler and start logic in processes.
Properly stop backend.
Lowercase signals names.
Do backend calls using kwargs.