Fair enough. What if we omit this check entirely? The facts can assume that the data is available, and if it's not then the fact can return nil.

One of the major reasons I'm concerned about this is that this will be run at load time, so if you do `require 'facter'` then this will be run, which is not ideal. It would be good to have this in a `setcode` block to prevent that. If this was a fact, then we could make the other facts do `confine :xen_provider => 'Rackspace'` or something similar.