Removed *Data structs in the msg package

These were previously used to aid in the construction of Message
structs. It is clearer to just create the Messages directly. This has
significantly reduced the size of the msg.go file.

We also detected, and fixed, a bug around the wrong IP:Port being used
for SELL reponses. This was undetected by any test and we should ensure
that tests in the netwk package use different IP:Port combos for
different traders.
netwk tests now using unique port for each trader

This detected the bug which I had previously detected, through simple
code reading, and then reintroduced during refactoring. Clearly this is
an important test criteria given the ease with which it was
reintroduced.

As a side note we have seen a number of bugs which appear due to the
symmetry of the BUY and SELL structure in the matcher. Because we are
always dealing with two orders, which are the same bar one detail, it is
common to mix up their fields. Theses bugs can be hard to detect, so it
may be worth considering this in the future.
Added Deadlines to tests in netwk package

All reads and writes to UDP sockets will fail if it takes more than one
second.
Changed the submit channel to dispatch

The name submit always confused me. Dispatch seems clearer, I think the
idea that every message should go through 'dispatch' is intuitive.
Having every message go through submit seems meaningless.
Test confirms server resends unacked RESPONSEs

When a RESPONSE routed message is sent to the client the server stores
the message and resends it (now every 100ms) until it is acked. We now
have one test which confirms that behaviour.

Additionally some fiddling of file names in the netwk package and a belated
gofmt.