Adapt Session to suit the new plan

The new plan includes:
- Storing notification_time in the session, but returning time_left
- Using Sinatra-Websocket instead of Pusher
  - This involves storing an array of sockets in the session
Make the server handle the new format of requests

Start request:
  {
    action: start,
    duration: 25
  }

Stop request:
  {
    action: stop
  }
Completely decouple the Pomodoro.Timer object!

A Pomodoro.Timer object can now be constructed with callbacks for:
 - onStart
 - onStop
 - onUpdate
 - onComplete

Note, timer.coffee lines 10-13 are using the coffeescript
"Existential Operator" to check if the callbacks are defined
before attempting to call them.

More info at:
http://coffeescript.org/#operators
Insert commented out sample SSE code to use later
Round the Session#time_left to nearest int
Update README.md
Allow JS to set duration and secondsLeft independently
Use ServerSentEvents for communication!

For some reason the multi_user_spec is failing.
It works manually, but selenium doesn't seem to work with SSE?
...requires more investigation.
Remove unnecessary stuff: Pusher, env vars, etc.
BugFix: Make timer.coffee#start idempotent

This prevents a bug where each time the SSE stream re-connects (which is
quite a lot), it used to start the timer again, which meant every
second, the clock would tick twice, and then on the next reconnect, it
would tick three times, etc.
Use capybara-webkit

This is for two reasons:
  1. It seems to be faster
  2. Selenium didn't seem to work with SSE
(half) Bugfix #2: Make the title reflect countdown

I don't understand how this change actually does that...
still trying to work it out!

Before this change, if you start and stop the timer a bit later, the
title would be one second behind the duration.

The change in timer.coffee is just to prevent too many calls to
@update() as @reset() will result in an @update() call anyway.