At the moment, the customServer redux field lives only in native. Since we want to use this state in web as well, we will need to lift the redux logic into lib. This diff handles lifting the set custom server action type into lib, and a subsequent diff will handle lifting the redux state into lib.
Depends on D10089
This logic is a bit confusing.
I guess the reason we decided to store a separate deviceToken per keyserver is because we want to know if we've shared our deviceToken to that keyserver yet, not because we expect to have a different deviceToken per keyserver.
It would probably make more sense if we have a deviceTokenHasBeenUploaded: boolean in KeyserverInfo, and a deviceToken field at the top level of Redux. But we'll likely end up removing deviceTokens from keyservers soon anyways...