remote ctypes is fast now

...with one compromise, that may go away eventually: In uicallback, you can't set globals like `idle_fxn`, `done`, etc. directly, and instead have to do it with bullshit setter function.
```
def set_idle_fxn(f):
  global idle_fxn
  idle_fxn = f
```