Make the Call model control the webrtc model, rather that having to manually keep the two in sync

This is aimed at making the Call model the authoritative state of the call/communication, using it to keep the communication model in the correct state, and reducing developer need to keeping two similar state items in sync.