WIP: (MODULES-1576) Use Puppet FileSystem abstraction for symlinks to support Windows

 - FileUtils::ln_sf is equivalent to FileUtils::ln_s and
   FileUtils::symlink, which are unfortunately broken in Windows through
   at least Ruby 2.0.  In Puppet we have a FileSystem class that
   provides a similar abstraction, but fixes all of the methods that
   are broken on Ruby for Windows.
There are other requires from within puppet elsewhere in this file, so presumably it's OK to do so here as well.