New frontend/backend architecture.

For review purposes - **DO NOT MERGE**

Notes:
* The separation is working pretty well.
* There are a lot of logs printed for all the messaging going on between components, we will disable this before merging this.

Todo:
- [x] forward flags module configured using arguments to the processes.
- [ ] remove logs for each communication
- [x] handle SIGINT/SIGTERM in processes

Main changes:
* frontend and backend in different processes
* communication using ZMQ

You can take a look at https://github.com/ivanalejandro0/frontend-backend-zmq-test to see a minimal app using this communication structure.
No, this first approach is meant to split the work in two processes (https://leap.se/code/issues/5734)
The next iteration will be to run them separately (https://leap.se/code/issues/5873)