Split backend components

Move backend to its own namespace.
Move Signaler to its own file.
Move backend's components to its own file.

It would be nice to use the same naming we've been using. This should be BackendProxy, the Signaler would be SignalerQt. And the same for the files, leapbackend.py -> backendproxy.py, leapsignaler.py -> signalerqt.py or something like that.