Tests expecting timeouts check for timeout errors

Previously we accepted any error.

Also removed TODOs around printing line numbers for failing tests. I
am satisfied with this solution.
Adding new MsgStatus field to Message

This is used to capture whether a message is a normal message or a
copy of a message that has caused an error. These copies are called
error messages (for obvious reasons).

There are three possible values for this field

NORMAL
    Not an error message
SENDABLE_ERROR
    An error message which will be logged and sent to the client
    indicated by its IP and Port fields
NOT_SENDABLE_ERROR
    An error message which cannot be sent over the network will only be
    logged

The most obvious instance of an unsendable error would be a message
which arrives into the system with zeroed IP and Port fields.
Error messages now handled by the coordinator

The coordinator now handles messages with error statuses in the folling
ways

SENDABLE_ERROR
    Error is logged and error is sent to the responder
NOT_SENDABLE_ERROR
    Error is logged

The responder will write a SENDABLE_ERROR back to the client indicated
by the IP and Port fields.

If the responder receives a NOT_SENDABLE_ERROR the responder will panic.

If the responder detects an error while attempting to write any message
back to a client it will generate an error message. If the error is
a temporary network issue then it generates a SENDABLE_ERROR message
otherwise a NOT_SENDABLE_ERROR message is generated.

Neither the matcher nor the listener produce error messages right now.
Both will in the future.

The handling of errors appears to be a rather delicate subject. Because
the responder will receive all SENDABLE_ERROR messages it generates back
from the coordinator there is the possibility of infinite loops, or just
really expensive loops. It isn't clear at this stage what happens if an
existing error message produces another error. Much will change about
this, no doubt.

There are no tests exercising this feature yet.