Update circuit-launch and predictive circuit-launch logic for prop 171
Once we implement stream isolation correctly (legacy/trac#3517 (moved)), we will need to revise our code that launches circuits for predicted streams and our code that launches circuits for unhandled streams.
Right now (first approximation), we launch circuits until every unhandled stream has at least one in-progress circuit that it could attach to. But prop 171 breaks that behavior, since just because in-progress circuit C could handle stream A or handle stream B, it does not follow that it could handle A and B simultaneously.
There are similar issues with predicted circuits; we should analyze them in more depth too.