Large refactoring; supports multiple --multicastAddress options.