Maint: Confine execution of platform code to the agent
Maint: Confine execution of platform code to the agent

Previously, the puppet master would attempt to require the `win32/dir`
gem during compilation and fail. Since that gem is a dependency of
facter and puppet's, it is not necessary to explicitly require it.

This commit also wraps calls to the Windows specific `Dir` constants
in a `Puppet.features.microsoft_features?` block so that it is not
evaluated on the puppet master during catalog compilation.

patrickkelso/puppetlabs-dism,DSI-Ville-Noumea/puppetlabs-dism,MelanieGault/puppetlabs-dism,cyberious/puppetlabs-dism,puppetlabs/puppetlabs-dism,cpharishnec/dism