Pure plumbing, no change on the wire. Both halves exist for the same reason: the
value this PR needs to publish is not reachable from the code paths that have to
publish it, and widening the signatures is separable from moving the value.
On the management side, the resolution between the account setting and the
server-config default moves into resolveDebugUploadURL, and the default becomes a
parameter that ToSyncResponse and ToComponentSyncResponse take rather than
something read off the server config at the point of use. The callers that have a
server config pass its value, which is what the code read before, so every
response keeps the destination it had. The peer fan-out builds its sync with a
nil server config, so anything derived from that config inside the conversion is
unavailable there; a parameter is reachable from the fan-out.
On the client side, Engine.Start takes the login response's PeerConfig. Nothing
reads it yet.
* Support per-peer lazy connection state and default proxy peers to lazy
* Classify forward targets from incoming config in lazy exclusion
* Set IsUserspaceBind mock so lazy manager starts in engine test
* Skip lazy exclude reconciliation when the set is unchanged
* Keep cached lazy flag when a sync carries no peer config