Run commands on coordinator

I haven't tested this yet, but I believe the code is more or less ready by now!

This makes sure that commands required to run on `device.group.coordinator` always does so.

There's probably lots of ways to optimize this, I just wanted to write down the idea of it to begin with.
How are the methods ``pause`` and ``stop`` related to the rest of the change?