Make the Supervisor class injectable

Allow injection of an explicit supervisor class.  This allows us to extend the RubyDNS::RuleBasedServer which amounts to allowing us to extend the DSL.

As a specific use case, consider dynamic configuration of the match rules based on a configuration file.  The RubyDNS::RuleBasedServer works very well if it's easy to write a single proc that incorporates all the desired behavior.  But doing anything more dynamic, especially if we want to combine a number of distinct blocks of behavior, is fairly difficult with the RubyDNS::RuleBasedServer.  So it's desirable to be able replace this class with a subclass that is more flexible.