Send the :links option to the file server

Previously, the server was never asked to follow links when 'links =>
follow' was used, so the server always provided the metadata for the
link itself. With this patch, the server correctly follows the link
server-side and the client can apply the catalog correctly.
(#7680) Update tests for changed behaviour after bugfix

A number of tests were broken before the bugfix:
* incorrectly checking the file mode (missing .should)
* operating on a non-existent source symlink

Enabled all of the #10315 tests which now pass, some of which needed
editing due to the expected behaviour now being different for
links => follow.
Update Puppet::FileServing::Metadata tests

Provide a stub for resource[:links] => :manage
Expect :find to be called with :links => :manage
(#7680) Add acceptance test for file links => follow
(#7680) Fixup Puppet::Resource::Catalog::StaticCompiler tests
Merge remote-tracking branch 'pr/1532' into 2.7.x
Improve CVE 2013 1654 SSLv2 Downgrade Master test

Previously we were only checking for the applicability of the master
(since we're testing the master), but we run the check from an agent.
This ensures the agent we run the check from has the necessary openssl
client for the test.

Signed-off-by: Justin Stoller <justin@puppetlabs.com>
Merge branch 'justinstoller-maint/2.7.x/improve_downgrade_master_test' into 2.7.x

* justinstoller-maint/2.7.x/improve_downgrade_master_test:
  Improve CVE 2013 1654 SSLv2 Downgrade Master test

closes #1548
(Maint) Ensure that kick tests don't trigger an agent run

This commit fixes the infamous error that appeared periodically as:

````
  1) Puppet::Application::FaceBase#parse_options should stop if the first thing found is not an action
     Failure/Error: @logs.map(&:message).should == ["'basetest' has no 'banana' action.  See `puppet help basetest`."]
       expected: ["'basetest' has no 'banana' action.  See `puppet help basetest`."]
            got: ["Could not run Puppet configuration client: Not a directory - /dev/null/state/agent_catalog_run.lock", "'basetest' has no 'banana' action.  See `puppet help basetest`."] (using ==)
````

The error came from the spec for Puppet::Application::Kick, which tried
to test the error responses from the application calling Puppet::Run.
Unfortunately only one of the 4 tests actually stubbed out the call
which ends up invoking a puppet run via Puppet::Run.

The reason this was so hard to track down is that it only occured if the
thread that was created for the puppet run executed during the later
test and added a message into the log messages tracked in memory. To
find this the kick test and the face_base test were run repeatedly until
the error occurred.

In 2.7.x, this done using ruby 1.9 with the command:

$ rspec --tag "~@fails_on_ruby_1.9.2" spec/unit/application/kick_spec.rb
  spec/unit/application/face_base_spec.rb
(Maint) Use absolute path for puppet in Gemfile

This allows the use of binstubs to execute puppet from another working
directory.