Deliver Candidates and Selected CandidatePairs using the same queue.
This means that things are delivered in order and we don't have to worry
about blocking
Before we launched a goroutine to announce every ConnectionState change
to users. These could then be sent to the user out of order.
This commit adds a connectionStateNotifier. The connectionStateNotifier
delivers them sequentially to the user.
Resolves#624