add close! method to client and return a map with EventSource + channel
close! closes both the EventSource and the channel
add server support for disconnect timeout and configurable keepalive