(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.
(maint) Always pass an arg to shared behavior block
(maint) Require rspec/mocks over deprecated spec/mocks
(maint) Never require rspec/mocks

We use mocha for stubbing and mocking; requiring the rspec mocks as well
will break things in RSpec 2.14.
(maint) Avoid rspec examples using variable behavior

Given an object with an attr_accessor and using an example shortcut like so:

    subject { metadata.to_hash }

    its(:keys) do
      subject.sort.should == %w[ name version author summary license source issues_url project_page dependencies ].sort
    end

The value of subject in the example varies between RSpec 2.11 and 2.13.
This commit removes the shortcut in favor of a slightly longer but more
compatible test that explicitly invokes the #keys method and does an
expectation on that.
(maint) Remove deprecated `.to_not raise_error(args)` calls

From RSpec:

    DEPRECATION: `expect { }.not_to raise_error(SpecificErrorClass, message)` is deprecated. Use `expect { }.not_to raise_error` (with no args) instead.

This commit removes all args from `.to_not raise_error` expectations.
(maint) Remove nonfunctional directoryservice test

It's not possible to test
Puppet::Provider::NameService::DirectoryService without stubbing out a
huge amount of code, which is done by a different test. The removed test
behaved almost identically like the following test so we can remove this
without losing test coverage.
(maint) Replace invocations of `subject` and `let` in `before(:all)`
(maint) Update rspec version to 2.14
(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 pull request #2874 from adrienthebo/maint/master/update-rspec

Maint/master/update rspec
(PUP-2918) Remove reduntant acceptance test for new build output

Before this commit, the acceptance tests fail because the output of the
puppet module build action has changed for missing Modulefile and
metadata.json files. With this commit, the acceptance test is removed,
because this behavior is covered in the spec tests.
Merge pull request #2888 from andersonmills/bug/master/pup2918-acceptance_tests_for_build_messages

(PUP-2918) Remove redundant acceptance test for new build output