[DO NOT MERGE] Initial commit of refactor. Still contains old code.

We will probably have to deal with some issues around this and maybe provide a workaround by offering the ability to configure DNS HA for multiple brokers.  But there are quite a few other fish to fry before we are at that point.