Add EventSource to the public API

Also fixes EventSource to not start sending output the moment we construct it but wait until we start sending data.

cc @PVince81 @DeepDiver1975 @MorrisJobke 
Please update the comment.
It's important to state that this will CREATE a new event source, as the class itself doesn't have any "open()" method.