Add generation ID to the connection ID, and pause reading messages during long-running tasks

Reviewer: @harshsin 

We've talked before about adding a generation ID to the connection ID so that all users get the same safety as when using the connection cookie.

Processing messages in order (using the pause/resume APIs created here) makes implementing deferred kflow revalidation for IVS much easier. The main concern I have about this change is the echo reply latency.