Blocking gethostbyname

The addresses of BootstrapCandidate instances are resolved on a separate thread, on success or timeout a callback is performed.

The goal is to ensure Tribler doesn't block when the dns resolving is having problems (slow or unresponsive dns servers, or simply an address that is no longer valid).  However, for the Tribler search community to work correctly the 'fast bootstrap' must have bootstrap candidates.  Therefore the Dispersy.start() will block at most timeout=10 seconds until 50% of the bootstrap servers are resolved.

Note that Dispersy will keep trying to resolve (between 300 and 600 seconds intervals, depending on the failure reason) until it has resolved all addresses.  Once an address is resolved it is not resolved again.