Technically, this allows to drop redundant code between rpc server and
rpc client using the base class from swh.core.api.asynchronous.RPCServerApp (which
now hides the detail of aiohttp there). This now matches how other rpc servers
are declared, reducing the reading frictions.
Ultimately, the goal is to make this maintenance a bit lesser important than it currently is.
Also this adds types so it's aligning with other modules.