I'm certain this isn't the best way to deal with this. I think we
should be able to lookup the classes ancestry, or something. Because we
subclass Chef::Provider, our ChefInstance::Provider::Instance becomes
Chef::Provider::Instance. So how do we find the sub-classes that
implement our services and installers?

I think for now we will pass in the type (service, installer), and the
name (init, package) to instance_sub_class. We will also specifically
use a designated namespace to look for objects in. I think this should
be somewhat dynamic though. But how?