Support multiple hosts for all plugin types

This diff adds multiple-host support for each plugin type, à la the redis plugin. Instead of handling the multiple instances in the plugin code, it spawns an independent thread for each host. The change is backwards compatible in that a single host can still be specified without using a list.