Make IModel throw AlreadyClosedException when already closed

This is how Java client works.
Make AlreadyClosedException message clearer
Assert that AlreadyClosedException message contains the prefix we want
Merge bug26071
Merge bug26068
Report timeouts on connection establishment (connection.start) as IOExceptions
Merge bug25278 into default
Correct argument order

It does not matter technically for the test becaues all we care
about is publishing a message, but still can confuse the reader.
merge heads
Ignore SocketExceptions when shutting down
merge bug26079 into junk