Use a dict instead of an object to ease serialization.
Merge remote-tracking branch 'refs/remotes/ivan/feature/use-dict-instead-of-object' 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.
Lowercase signals names.
Do backend calls using kwargs.
Add SIGINT handler.
Add missing error/passed keys.