Move the UDP relay to a gen_server, and supervise it.
Fixes to work correctly in clusters: start / stop relay on all cluster nodes when exchanges created / deleted, and add a recovery step (since XType:create/2 only gets called on the first node to start).
These should really not happen inside a transaction.
Merge pull request #3 from simonmacmullen/master

Supervision and cluster support