Set write deadline to zero

If the HTTP server has been created with a write timeout, the hijacked
connection will have a write deadline set. Since eventsource has no
timeouts of its own, it never resets the deadline and writes to the
connection will eventually fail.

In Go 1.0.3, this is not an issue because of a bug that prevents the
correct checking of the deadline, but revision 14943, which will be
part of Go 1.1, fixes this.
implement configurable write timeouts

This commit adds timeout handling, which entails the following
changes:

- Multiple writes to a single consumer are not concurrent anymore
- Write attempts time out after a user-definable timeout (default: 2
  seconds)
- We have a fixed-size (10 messages) message buffer, which means that
  if the link is too slow, messages might get dropped
- Optionally, timeouts can cause a connection to get closed
  entirely (defaults to yes)

Additionally, two new methods are added to the public API:

- EventSource.SetTimeout(time.Duration) for setting the timeout
- EventSource.CloseOnTimeout(bool) for setting if timeouts should
  close the connection
move timeout behaviour into Settings struct
Merge pull request #3 from dominikh/master