WSS: Use a ConcurrentDictionary to hold the active streams

This means that we can get rid of some manual locking. I think we can remove some
more locks too, but I'm not completely sure.