(PUP-2918) Clarify missing Modulefile error

Prior to this commit, when building a module without a Modulefile or metadata.json,
the builder would blow up with a cryptic 'Unable to find module root at DIRECTORY'
It's not entirely clear what that means to an end user.
This commit clarifies that metadata.json or a Modulefile are what need to be found
at the module root. Also removes some duplicated logic for checking module root.
(PUP-2732) Restrict Posix exec tests to POSIX env

 - Instead of trying to simulate a POSIX environment on the Windows for
   the sake of tests against a provider that never runs on Windows,
   exclude the tests when Puppet.features.posix? is not true.
 - Given that these tests will no longer execute on Windows, the usage
   of expand_path is no longer necessary, nor are any of the
   Puppet.features.microsoft_windows? guards
Merge pull request #2884 from Iristyle/ticket/master/PUP-2732-fix-POSIX-exec-specs-for-Windows

(PUP-2732) Restrict Posix exec tests to POSIX env
Merge pull request #2857 from highb/fix/master/pup-2918_no_modulefile_error_message

(PUP-2918) Clarify missing Modulefile error
(PUP-2943) Add PMT --ignore-changes

Prior to this commit there was no way to only ignore local changes to a module.
You had to --force when upgrading/uninstalling, which could potentially have other
repurcussions.
This commit adds the --ignore-changes flag, so a user can specify that they don't
care about local file changes but do not want to force anything else.
(PUP-2943) Uninstall/upgrade ignore changes spec

Adding more spec tests for the --ignore-changes flag on uninstall/upgrade