(PUP-3003) Exclude unnecessary files from MSI

Previously we bundled all of puppet, facter, hiera, mcollective and vendored
ruby into the installer, which included many unneeded files, e.g. spec,
acceptance, etc.

This commit modifies the stage task to exclude unnecessary files and folders,
so that they are not copied from downloads to staging
(everything in staging is included in the MSI).

With this change, the FOSS MSI size is reduced from 19MB to 17MB. The
installation directory (uncompressed) changes to 49MB (from 57MB) for the
x64 version.
(PUP-3003) Exclude util and patch files

This commit switches to using %r to build regexp, and excludes /util/* and
*.patch from files included in the MSI.

It also switches FileUtil.mkdir to mkdir_p, because the former will fail if
the destination directory exists, for example, if you re-run the `build` task
during development. This isn't an issue during automated builds because we
always wipe the workspace before building.
Merge branch 'ticket/master/PUP-3003-exclude-unnecessary-files'

* ticket/master/PUP-3003-exclude-unnecessary-files:
  (PUP-3003) Exclude util and patch files
  (PUP-3003) Exclude unnecessary files from MSI