Stop heartbeat on close

Close #1
Don't crash with empty history events

Close #2
Move ServerSentEvents inside Redisse namespace
Coerce data to String when creating event
Use evented Redis for history events

* Switch from Redis to EM::Hiredis
* EM::Synchrony::Hiredis doesn't work with latest EM::Hiredis so the
  call to EM::Synchrony.sync is explicit.
* Had to use env.status instead of Goliath::API#status (actually
  method_missing) that uses Goliath::API#env which doesn't work with
  streaming responses.
Namespace Rack env key to "redisse."
More frozen strings
Move channels fetching out of #subscribe to #response
Use only one pubsub connection for all clients
Use Rack::Response to have a proper Content-Length
Extract server responses
Redis connection failure behavior

Previously when the Redis connection failed, open connections kept open
and resumed streaming events when Redis came back online, but could have
missed events in between. New connections were also accepted and resumed
streaming when possible but crashed the server if history was requested.

Now open connections are closed when the Redis connection fails, which
allows the client to automatically retry with Last-Event-Id, which makes
possible to send missed events as history, while new connections fail
with a 503 Service Unavailable status.
Fix example under Firefox
Fix parsing of 'polling' query string parameter
Fix parsing of lastEventId query string parameter
Simpler stats: connected, served, events, missing
Move history handling outside of subscribe
v0.2.0
Merge branch 'master' into accel-redirect

Conflicts:
	lib/redisse/server.rb
Specs for RedirectEndpoint