feat: introduce sync and rpc buses
Implements #706
This PR introduce two new buses: sync and rpc and split requests on these new buses.
- [ ] Rename module
rpcintobusto havebus::msg,bus::rpc,bus::sync... - [ ] Migrate cli over
rpcbus - [ ] Migrate syncers over
syncbus - [ ] Only have
Rpc,Ctl,Msg, andSyncon the primaryRequestenum
commit refactor: start splitting request messages starts splitting the Request enum into different enums for each buses.
swap-cli info has been fully migrated over the RPC bus; the other cli calls now fail because the rest is still over the CTL bus so CI will not pass.
Next steps for this PR to then go into review/heavy test phase next week:
- [x] check documentation on encoding and
APIusage for messages - [x] chose correct numbers for each message (if
APIderive is maintained above) - [ ] ~maybe add new message types to allow strict filtering of types on each buses;
Request::Rpconly onRpcbus,CtlonCtl, etc.~; to do in another PR
This PR is a big step toward this architecture:

Currently some services are listening to some buses without using it, this needs to be cleanup in the next PR. Also, walletd currently make no usage of the Info (i.e. Rpc) bus, but we can add it if we want to query some state later.