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.