Merge pull request #3014 from andersonmills/fix/master/PUP2040-gitignore_symlinks

PUP-2040/PE-3113 Ignore symlinks in module build with pmtignore/gitignore.
PUP-2040/PE-3113 Remove symlink-ignore tests for symlinkless OSes

Before this commit, the spec tests checked for symlink-ignore behavior on all
OSes. After this commit, the spec tests only check symlink-ignore
behavior on OSes that have symlinks.
Merge pull request #3018 from andersonmills/fix/master/PUP2040-fix_symlink_testing_on_windows

PUP-2040/PE-3113 Remove symlink-ignore tests for symlinkless OSes
(PUP-2349) Force metadata mode to be an octal string

The initial commit for this ticket missed the case where
the mode value isn't explicitly specified but rather comes from
source permissions of a file resource, e.g. as happens during
pluginsync.

This change ensures that Puppet::FileServing::Metadata#mode is
converted to an octal string if it's a Numeric.
(PUP-2349) Specify mode as an octal string consistently in spec manifest snippets

In the puppet 4.0 parser, the file resource's mode property will be
required to be a string containing an octal (or symbolic) representation
of mode.

For consistency then, this commit changes all cases where mode was
specified as a Numeric to be a string containing an octal representation
of mode (always prefaced with a 0, again for clarity and consistency).