On Firefox, fire onnegotiationneeded after the first data channel is created

Could this be combined into 1 if statement (!dataEnabled && pc.onnegotiationneeded) {

That would just mean if you don't register the handler until later than you should, which is already a weird use case, then we would still give you a negotiation needed reminder. That doesn't seem like an altogether bad thing?