Device tracker calls callback instead of sockets

NOTE: This pull request depends on #747

I'll keep rebasing anytime #747 updates, the commits for this diff start with 18f4287

This pull request rips out the device tracker implementation (based on socket communication) in native code and replaces it with one that calls JS callback (sends a js-message) every time some device state changes.