bin/svr now supports buy/sell/cancel orders

We have moved a user into a separate source file, user.go. A user
maintains a list of each of the outstanding messages (buy/sell/cancel)
which have not yet been fullfilled. Every time a human-user submits an
order they are sent back a 'full state message' which contains

availBal:    The user's available balance, used to limit the volume of
             buy orders
curBal:      The user's current balance, the actual amount of money the
             user currently has
received:    A structure containing the message, 'message' the user just
             sent and a field, 'type', indicating whether the message
             was accepted or rejected. All possible values
             "ACCEPTED_CLIENT", "REJECTED_CLIENT" and "FROM_SERVER"
outstanding: A list of all the messages which have not yet been
             fulfilled

Because the oustanding messages contain the tradeId value it is possible
to cancel and outstanding buy or sell message. It is worth noting that
cancel messages which have not been responded to by the server will
appear in the list of outstanding messages, but can't be cancelled.

Every time the matching engine sends a message back to a user,
indicating a FULL or PARTIAL match or that an order has been CANCELLED
or NOT_CANCELLED, the same full state message is sent to the user. In
this case the 'received' field's 'type' will be "FROM_SERVER".

Currently the UI is rubbish and to cancel an outstanding order requires
you to click on the 'Cancel' text which precedes the order on the
web-page, although the cursor does not change when you mouse over it.
Refactored the client/ package

Specifically these types have changed:

Client -> C
Trader -> Comm
TraderMaker has been removed

Now the client.C type is used to both run the client and provide
a (thread-safe) way to create new client.Comm objects to inject
messages into and receive messages back from the running client.

We also removed the references to the global variables 'traderClient'
and 'idMaker' from the user.go source file. This code should live in a
separate package eventually so it's not a bad idea to avoid tying them
together like that.