Messages identified by Kind/TraderId/TradeId

Previously messages were identified by just TraderId/TradeID. This meant
that the system considered a BUY order to be identical to a CANCEL
message for that BUY order. This was worked around in the listener by
excluding CANCEL messages from the guidstore check that BUY/SELLs are
subject to.

It became clear that this was a more fundamental problem when a defect
in the responder was found. I discovered that if a BUY message was in
the unacked map and a CANCEL message (with the same TraderId/TradeId)
came in it would replace the, unacked, BUY message which would no longer
be resent. The fix was to create a new MsgStore holding unacked
messages. This MsgStore would identify messages by their
Kind/TraderId/TradeId tiplet.

It is expected that both the guid/Store and the netwk/MsgStore will move
into the msg/ package. These will become a small suite of utility
containers dealing with messages.
Moved package guid/ into msgutil/

The guid.Store is now called msgutil.Ticker and has a single public
method Tick(*msg.Message). The identity of a message,
kind/traderId/tradeId, is now hidden inside the implementation of
ticker.

Small changes include.

All msg/ enums now using 'iota'.
All msg/ enums now have a NUM_OF_* value attached this indicates the
    number of values for that enum
Unacked message resends now being resent every 500 millis