(fact-79) Document builtin facts in a json schema

Prior to this commit there wasn't validatable documentation
for the types of built-in facts.  This schema matches against
the type of built-in facts (at least on the platforms I tested:
osx, precise, fedora18).

This initial schema only uses primitive types (string, integer,
boolean) but could be enhanced with enumerations (e.g. for kernel,
which only assumes a limited set of values) or tighter regexes
(e.g. for network addresses that follow a fixed pattern).
(fact-79) Add facter_json_output_validate.rb

Prior to this commit there was no validation of facter output
against a schema.  This commit adds an acceptance test to validate
facter output against the recently added schema.

Note that the acceptance test is currently confined off of a
number of platforms, notably those which come with ruby 1.8.7,
since that doesn't include the json gem. We should remove those
confines as acceptance jobs are enhanced to add the gem to those
platforms.

This also adds a quicky validate.rb script for dev use.
(fact-79) Commonize non-nil physicalprocessorcount values to string

Prior to this commit, physicalprocessorcount returned an integer on
non-sunos platforms, but a string on sunos. Also, all the other
processorcount-related facts returned strings regardless.

For consistency cross-platform and cross-processorcount-facts,
this changes all physicalprocessorcount values to be strings.

Note this doesn't change the one case where physicalprocessorcount
returns nil, as that is being addressed by fact-107.
(fact-79) Enforce that all built-in facts must have a schema defined
(fact-79) Add a README.md for the schema and clearer validate.rb output
(fact-79) Add a bunch of missing facts
(fact-79) Extend acceptance test to ruby 1.8.x platforms
(fact-79) Specify the agent name in the step
(fact-79) Convert ip and mac addreses to use a regex
Merge pull request #584 from kylog/issue/fact-79/facter-2/add-facter-schema

Issue/fact 79/facter 2/add facter schema