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.
because the `STOP_REQUEST` string is used to queue and parse the stop, using a variable we avoid to use the string directly (see `backend_proxy.py`).