Update to ICE handling

The client now waits for ICE negotiation to finish before showing the user that the call has connected. Previously if ICE negotiation failed it could take up to 20s for the user to be notified and for that 20s wait the client would look like the call connected.

In order to fix this I had to make some changes to the SIP.js library that add events to tell when the ICE negotiation completed successfully. I forked the library and you can find the changes in this branch https://github.com/capilkey/SIP.js/tree/new-ICE-events