Lowercase signals names.
Do backend calls using kwargs.
Add SIGINT handler.
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.