Make OSSL and Connection transports more like normal sockets in edge cases

In particular ensure they can be closed more than once and that they
can will return empty bytestrings on EOF
Add a bunch of haddocks for the more important types
Reorganize scratch a bit