Supervision and cluster support

The relay was not supervised, so if it crashed then you were out of luck. It would get recreated if publishing AMQP -> UDP, but not the other way round. So I've converted it to a gen_server and supervised it.

Also, the exchange did not work well in clusters, since rabbit_exchange_type:create/2 only gets called on the node on which the exchange was created / recovered. So I've added some simple attempt to fire up relays on all cluster nodes at creation and recovery time.