First steps for the clustering

This pull requests adds the following features.

* Adds FQDN (Full Qualified Domain Name) in the arbiter class, to uniquely identify circusd nodes on the cluster
* Adds a way to do node discovery via UDP broadcast.
* Adds a way to use a FQDN prefix from the configuration.
* FQDN is now sent in the stats and in event messages.
* Adds AsyncClient and AsyncStatsClient in circus for reuse between circusweb, circus-top and circus-ringmaster
* Adds a json encoder able to deal with sets.

We've been pair programming with @Lothiraldan and @Natim on this one.