(FACT-613) Add structured processor fact

The first of these commits adds the 'processors' structured fact, which incorporates all processor-related facts into a nested hash. Includes keys for the equivalents of dynamic ProcessorX facts, ProcessorCount, and PhysicalProcessorCount.

In addition, the fact includes a 'ProcessorSpeed' key in OSX, which is equivalent to the existing sp_current_processor_speed fact.

The second commit refactors the existing Processor, ProcessorCount, PhysicalProcessorCount and dynamic ProcessorX flat facts to resolve by using values from the new 'processors' structured fact. This ensures that these facts will stay in sync with the new fact, while also maintaining backwards compatibility.
Do we even need to confine these flat facts?  Why not have `setcode` in these flat facts check for the processors fact and if not present, return nil?  Let the processors fact confine to the kernel.