Refactor session joining and HoA status

Refactor the /session/:sessionKey redirect to split out hangouts-on-air
into a separate handler.

Add new views which handle error states in joining regular hangouts or
hangouts-on-air. For regular hangouts, display a "session is full"
warning if joiningParticipants and connectedParticipants total more than
MAX_ATTENDEES, rather than letting the users encounter the error when
they get to google.  For hangouts-on-air, add interstitials which warn
when another user is in the process of creating a hangout-on-air, or
when the hangout-on-air url has expired and a new one needs to be
created.

Refactor HoA socket wiring to be more verbose -- communicate changes
with the (admin) clients whenever any of hangout-pending,
joiningParticipants, or connectedParticipants changes.  Use this to
update the "join/create hangout" button and mute status.  The result
should be more aggressive muting that persists through refreshes and
more correct display of the hangout button without requiring a refresh.