Allow embedding youtube video by full URL

Fixes issue #229.  Includes selenium tests for embed process.
Merge youtube URL branch
Tested and functioning socket-based facilitator

Changes:

  - Session participant data is now stored as a (denormalized)
    serialized user object instead of just a participant ID -- so it's
    ``session.setConnectedParticipants(userdata)``, not
    ``session.setConnectedtParticipantIds(ids)``. This seemed the
    simplest way to fix issues with missing user data in the Event
    dashboard when someone joins a session without the event page open.
  - Session ``connectedParticipants`` are cleared when loading from
    Redis for the first time.  Loading from redis means that the server
    has restarted -- and all socket connections will need to be
    renegotiated anyway, which will re-populate
    ``connectedParticipants``.  We might also consider just refraining
    from ever persisting that key -- but clearing it on load is easy for
    now.
  - Switched the test socket client to ``sockjs-client-ws``, which uses
    websockets instead of XHR.  The node XHR socket client was throwing
    random disconnects -- we'll want to evaluate carefully that this
    doesn't cause issues with room connections in real browsers using
    XHR.
  - Corrected a couple Tag issues (e.g. ``<ul><div></div></ul>``) on
    events page.
  - Added socket reconnection to facilitator.
  - Added a server restarting routine for testing what happens when the
    server is restarted.
  - Refactored room manager tests to be less insane, and to work with
    the more exacting ``sockjs-client-ws``.
  - Removed heartbeat-oriented tests.