Fixes#791
It was possible for two requests to have the same ID, causing a crash and loss of StreamProvider connection.
This new id generation strategy creates a random ID, and increments it for each request.
In case the id generator is included from two different processes, I'm initializing the counter at a random number, and rolling it over a large number when it gets too big.