Updating socket.io to 1.0.0
Making update function private
Mocking socket.io for testing

Setting up some mock objects on the global io object, in order to save
references to all event handlers that are set up with socket.on().

This enables us to manually call these event handlers in tests.
Adding a test for a disconnecting user

The corresponding user should be removed from the remote users.
Implementing handler for a 'user disconnected' event
Some cleanup

Unused assertion, single quotes
Changing removeUser() to expect uuid instead of object
Fixing bug with user at index 0

Explicitly === compare with false, so 0 is a valid index.
Implementing "user disconnected" event

The server now saves each user's UUID. When the user's socket is
disconnected, the other users are notified.
Cleaning up, double quotes
Changing localUser to broadcast immediately

The existence of the new user is now broadcast even before the name is set.
This is important for users whose name has been taken from a cookie and thus
is not set explicitly again.
Changing estimation UI handling to subscription

Less logic in the view.
Fixing problems with "0" estimation

0 == false prevents the correct CSS class from being added. === fixes it.
Cleaning up binary operators

Use === where possible. Using unary + to convert to int.
Fixing bug where 0 was not recognised as min value

If the minimum estimation was 0, it was not highlighted as the mininum.

Strict comparisons help.
Adding storyTitle as an observable with editableText binding
Adding broadcasting of story title

Update function on the server-side stays object-agnostic, we differentiate
between user estimation data and story data in the client.
Adding broadcasting of story title for new users

The "who is there" event is now additionally responded to with the story
title by all clients. This is totally redundant but works for now.
Ignoring jEdit's .marks files
Adding "new round" action

This action will reset all estimations of all users.

When triggered, the function resets the local user's estimation to
false and sends an event that asks all other clients to do the same.
The result will then be synced among the clients by the normal update event.