The initial window is used when starting the transmission over a session,
both initially, and also when the session was idle.
The actual value used was adjusted over time with various RFCs (RFC5681,
RFC3390 (IW4) and RFC6928 (IW10).
However, the actual calculation was split for the first (initial) round,
where all these adjustments were added, and the re-calculation when
a session had become idle. The restart window calculation also omitted
considering the TCP options used, during re-calculations.
This change consolidates both calculations in a single function, and
also addresses the common case, where TCP options like timestamps
would leave some of the congestion window left unused, potentially
leading to smaller than MSS sized segments.