Keep map of open connections
Close listener
Set deadline for all inactive connections
Extend ConnState with StateData indication inital request data

This also passes StateData to ConnState handler from connection
instead of managin timeouts itself.
Correctly handle timeouts during shutdown
Always wrap listener, set request timeout only if ReadTimeout disabled
Reorder setting up close flag
Add WaitGroup for counting connections
Serve returns channel which can be used to wait for outstadning requests
Add ListenAndServe
Add simple tests for closing
Update README.md