Fix module dependencies

This PR moves a few things around, breaking circular dependencies, so we have a nice dependency tree.

This is done by:
- [X] Make "command" _not_ depend on "connection"
- [ ] Make "command" _not_ depend on "action"

If you see any circular dependencies which I didn't yet mention, notify me.
Oh shit. I wouldn't rename the functions either, but maybe we could use something like `ws_command_add_commands` here? Would be a bit more verbose about what happens...