Refactor `StreamId` and `CircId` to be nonzero
While we currently use 0
as a sentinel value on the wire to mean "no stream id", the current version of StreamId
would be more idiomatically represented as Option<NonZeroU16>
internally.
This will particularly make more sense for the new cell format proposed in prop340, which stops using 0 as a sentinel value and instead omits it where applicable.
We should do the same for CircId
for similar reasons + consistency, though it isn't strictly needed for prop340.