(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, Processor, 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.
I actually set the keys as strings because I was getting a resolution error with symbols. Specifically,

<pre><code>
Fact resolution fact='processors', resolution='<anonymous>' resolved to an invalid value: 
Expected processorcount to be one of [Integer, Float, TrueClass, FalseClass, NilClass, String, 
Array, Hash], but was Symbol
</code></pre>

with the chunk implemented like so:

<pre><code>
  chunk(:processorcount) do
    processor_hash = {}
    if processor_count = os.get_processor_count
      processor_hash[:processorcount] = processor_count
      processor_hash
    end
  end
</code></pre>
I can successfully make :processors into a symbol with no issues, however.