Now uses multiple threads to send messages, so that one faulty receiving instance cannot block messages to other instances
Converts host names to IP addresses on startup, so that all internal logic works on IPs