(FACT-186) Express windows specific gem dependencies

Previously, if a ruby module on windows tried to use facter as a
library, the calling module had to know about facter's platform specific
dependencies. This comes up when trying to develop and test puppet
modules on windows.

This commit adds the windows specific gems (which mirror the Gemfile) to
project_data.yaml. The build pipeline will automatically create an
x86-mingw32 gem in addition to the generic one.
(FACT-186) Consolidate gem runtime dependencies

Previously, the Gemfile and ext/project_data.yaml both described gem runtime
dependencies, the former requiring an exact match, the latter a pessimistic
match.

This commit makes project_data.yaml be the single source of truth, and it
specifies exact versions.

Rubygems and bundler have different ideas about what constitutes a platform.
Rubygems requires an arch and os, e.g. x86-mingw32, while bundler has a
hard-coded list, see Bundler::Dependency::PLATFORM_MAP. As result, we need
to use the rubygems platform when building the facter gem, but use the
bundler platform when expressing gem dependencies.
(FACT-186) Pessimistic version binding gem dependencies

This loosens the Win32 platform gems and CFPropertyList to allow the
third version number (patch)  to be determined at install time.

This allows better compatibility as we make future updates to
dependency versions.

Paired with Josh Cooper <josh@puppetlabs.com>
Merge pull request #607 from ferventcoder/issue/facter2/fact186-win32-dependencies

(FACT-186) Express windows specific gem dependencies