Documenting practice with candidate events

Three changes:
* RTCIceCandidate is now less optional and immutable
* sdpMid and sdpMLineIndex are mandatory for the browser to provide
* the candidate attribute on the icecandidate event is now actually nullable and there is documentation that explains what it means
That's of no use here.  Not really.  It doesn't capture co-dependencies (`sdpMid` and `sdpMLineIndex`) and there is no sense in requiring `candidate` if it is nullable.

If we start down that path, I start to ask why we require construction of this object, rather than just taking the dictionary as an argument to `addIceCandidate()`.