(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-2078) Clarify --force behavior

Prior to this commit it was unclear that --force also implies --ignore-dependencies.
This commit clarifies that --force does also imply --ignore-dependencies.
(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
Merge pull request #2852 from highb/fix/master/pup-2078_force_unexpected_behavior

(PUP-2078) Clarify --force behavior
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (PUP-2732) Restrict Posix exec tests to POSIX env
  (PUP-2078) Clarify --force behavior
  (PUP-2918) Clarify missing Modulefile error