Added unit tests for coordinator and dispatcher

Specifically the following behaviours are tested

1: Order messages go to the matcher
2: Messages with error status go to the responder
3: Server acks go to the responder
4: Client acks go to the responder
5: Matcher responses go to the responder
6: Commands go to both the matcher and the responder
7: Invalid messages result in an identical message with status
    INVALID_MSG_ERROR set being sent to the responder

Also msg.RESPONSE -> msg.MATCHER_RESPONSE
Responder now using map to store unacked messages

This is a significant simplification of the code handling unacked
messages.

When an unacked message is being acked we used to perform a linear
search through a slice of unacked messages looking for the one being
acked. Now we only need to generate the message's guid and remove it
from the map.

The order in which unacked messages are re-sent is no longer well
defined. So we had to modify the unit tests. Where before we would
expect each resent message individually we now expect any one of the
possible resendable messages. For this reason the ExpectNoAck(...)
method was replaced with ExpectOneOf_NoAck(...)
Added cancel tests to testsuite

These tests revealed a bug where CANCEL messages weren't being passed
from the listener to the dispatcher. This was because we were trying to
insert the cancel message's guid into the guidstore and this would
indicate that the message had already been added.

The ExpectEmpty(...) method was removed from the MatchTester interface
in testsuite.go. Previously, networked tests were using timeouts to
determine that there really were no more messages coming, i.e. that the
message queue for that trader was empty. Now we exploit the strong
ordering guarantees on message delivery and we push through another
set of messages for that trader and simply expect on the new messages.
This is referred to in the testsuite as flushing and can be seen in the
cancel and separate stock tests. Using timeouts was also very slow and
removing the ExpectEmpty method has stripped 2-3 seconds off a full
build/test.
Matcher (officially) panics on unexpected messages

This was the previous behaviour too, but now I removed the TODOs to
change this.

The decision to adopt panic in these scenarios is that they represent a
programming failure and are not considered part of normal execution. It
is expected that any erroneous messages are handled by the dispatcher.
Added NO_KIND tests to tmsg_test.go

Specifically we added NO_KIND tests to WriteResponse, WriteClientAck
and WriteServerAck tests.

Test failures no longer print the filename:linenumber as is commonly
used in other tests. This is isn't required here because we are using
lots of small tests and each failure is indicated clearly by 'go test'.