Add base communication framework
Add API/SIGNALs definition.
Add LEAP implementation for communication classes.

Also, separate backend components to a different file
Use new backend/signaler and start logic in processes.
Lowercase signals names.
Do backend calls using kwargs.
Add SIGINT handler.
Fix signal names and parameters
Move 'error' keys to correct place.
Use a dict instead of an object to ease serialization.
Use stdlib's json to ensure receiving unicode.
Remove unneded parameter on signals.
Add type checking for the backend.