Implement UI for when a call is placed on hold and resumed from an SPA

This is the changes required for [this card](https://trello.com/c/BKi5b6gH).

This supports call hold and resume coming from the SPA, and produces the appropriate UI given in the card.

The additional hold state in the call model was chosen as it felt like hold is another state in the call. It could have been an attribute, but the hold state actually gives us some things for free like closing the video. I've checked the code, and this doesn't appear to adversely affect anything else.