Fix to address a deadlock that happens sometimes when ice negotiation fails.  updateIceState fires an event holding stateMutex_, and that causes a lock with the WebRTCConnection class.  Also, clean up some vestigial junk, make locking more granular (we were holding nested locks to check ice state, for example--putting the lock after checking ice state removes that issue), etc.