Fix portage-provider so that packages with keywords can be installed

This patch removes the --stable restriction from the portage provider,
which made the installation of packages with keyword-restrictions impossible.
By superimposing this restriction the provider broke in many installations
and thus rendered puppet unusable for systems that relied on packages with
keyword-restrictions. This applies for example to all packages provided by
overlays.
This fix puts the administrator back into the responsibility to decide which
packages he/she wants to install.
Add tests for gentoo provider
(#11276) Checksum files in binary mode

Previously, the puppet module tool would checksum a file in text mode. On
Windows, this would cause the module tool to report that a module had
local changes due to it computing the wrong MD5 checksum (due to File.read
translating '\r\n' to '\n').

This commit changes it to read the file in binary mode instead. This has
no effect on non-Windows platforms.
(#11276) Expand Dir.pwd

On Windows, Dir.pwd returns a path with backslashes, which confuses the
relative path from, since it doesn't know that 'C:/' and 'C:\' are the
same.

This commit simply expands Dir.pwd which results in forward slashes.
Merge branch 'pull-1403' into 3.1.x
Merge branch '3.1.x'
Merge pull request #1441 from joshcooper/maint/master/module-tool-windows

(#11276) Module tool on windows