provide some form of signal handling

In particular this changeset handles C-c (SIGINT) correctly in conjunction with DSOs, their `fini` stub is called and the event queue is properly drained.

Also, for this matter, introduce order action CANCEL to easily reinterpret an order as a cancel.  The exact semantics should be `order.action = "CANCEL"` and `order.totalQuantity = 0`.