Message now contains OriginId and MsgId

Previously a message was uniquely identified by a combination of its
kind + traderId + tradeId. Unfortunately if a BUY order for 3 units
resulted in 3 separate matches (of 1 unit each) this would would produce
two PARTIAL matches one of which would look like a duplicate of the
other. A separate OriginId and MsgId field pair was created to uniquely
identify a message. These fields are completely separate from complex
business logic fields, such as kind, traderId and tradeId.

The originId identifies a particular message sender and each message
sent from that sender would have a unique (and monotonically increasing)
value. It is the responsibility of the responder to add both of these
values to outgoing messages.

This change has the pleasant effect of simplifying both the
msgutil.Ticker and msgutil.Set objects, as neither needs to include the
kind when uniquely identifying messages. This also produces a very clean
separation between the header and body parts of the Message struct. This
will be looked into further in the future and an attempt to fully
separate them will be made.

Additional interesting changes:

matcher/testsuite.go has dropped all header data from test messages. The
MatchTestMaker objects are expected to populate the headers with
appropriate data. Affected MatchTestMaker implementations can be found
in tcoordinator_test.go and tmatch_test.go.