Copy sock/in_stream/out_stream before checking for null

Fixes issue #98

If the connection has been closed then these fields may be null.
optimise RelayConnection read/write

Wait indefinitely for new outgoing messages instead of waking up
4 times a second.

Avoid making multiple copies of byte arrays when reading messages.
Input may contain multiple lines (if pasted)
Allow nicknames to be enclosed in < and >

Also fixes an issue with irc_notice messages and
messages from people named "*action" were being
handled as actions in notifications.