Fix PUP-1568 - no success variable anymore

In the refactoring within 000b8fef the success variables was
removed. So the error message shouldn't anymore use it.
Fix broken spec & wording of error message.

While working on 658f1237c1596a6f735b7b707130fc0897a1a113 I stumbled
accross another messages that would say 'with error code false', which
doesn't make a lot of sense. Also the plain 'expect raise_error' was
masking another problem with tests. One should always only look for the
exact expected error and not just general for any kind of error.
(PUP-1510) Fixed forcelocal bug with ensure => absent

The forcelocal option was referencing a command that was not
previously defined which was throwing an exception.  The forcelocal
feature does not need to use a special command to delete local users,
only to add them.  So the special logic for delete was removed and
forcelocal now uses userdel to ensure absent on a user.
(maint) Improve Puppet::Util::Docs.scrub's handling of one-liners

One-liner handling wasn't behaving as expected. Sometimes one-liners are
buffered with extra newlines before and/or after, and in these cases, scrub
wasn't catching the leading whitespace.

This commit makes it behave as intended, and adds a test showing the intended
behavior.
Merge pull request #2361 from nfagerlund/maint_scrub_improvement

(maint) Improve Puppet::Util::Docs.scrub's handling of one-liners
Merge pull request #2354 from jjulien/pup1510

(PUP-1510) Fixed forcelocal bug with ensure => absent
Merge pull request #2324 from duritong/fix/master/PUP-1568_fix_error_reporting

Fix/master/pup 1568 fix error reporting
PUP-1772 Change api for Puppet::Util::Profiler#profile to public

This patch changes the YardDoc annotations so that the class
'Puppet::Util::Profiler' is now public, and its method #profile
is also public.

The remaining methods are still marked as private, as they
aren't really needed by most external consumers.

Signed-off-by: Ken Barber <ken@bob.sh>
(maint) Add Ruby 2.1.0 to Travis CI
Merge branch 'pr/2346'

* pr/2346:
  (maint) Add Ruby 2.1.0 to Travis CI

This closes GH-2346.
Merge pull request #2390 from kbarber/ticket/master/PUP-1772-profile-method-public-api

PUP-1772 Change api for Puppet::Util::Profiler#profile to public
(pup-1766) Remove duplicate test
(pup-1766) Add support for multiple defaultfor's

Prior to this change, it was possible to specify a defaultfor to
cover, say, multiple osfamily's e.g. with:
    defaultfor :osfamily => [:os1, :os2]
Or it was possible to specify a more complex hash, e.g. with
    defaultfor :osfamily => :os1, :operatingsystemmajorrelease => "42"

But if more specificity for just one of the operatingsystem values was
needed, defaultfor couldn't support that. This change allows for this, e.g.:
    defaultfor :osfamily => :os1  # all variants of os1
    defaultfor :osfamily => :os2, :operatingsystemmajrelease => "42"  # only release #42 of this os

To support this change Provider defaults is now an array of hashes (formerly,
it was a merge of the hashes provided by all defaultfor invocations), which requires
commensurate updates to the specificity method and the dochook.

There are also some new spec tests for representative defaultfor combinations, and
two spec tests needed to be updated with the expectation that Facter will be invoked
to assess defaultprovider specificity.
(pup-1766) Set systemd as a default provider for the service type on rhel7
(pup-1766) Add support for :feature to defaultfor

Previous to this change defaultfor had no support for a key
of :feature, however the exec/posix.rb provider assumed
there was such support.

The only reason this worked was that the specificity method
evaluated hash length independent of whether the hash matched
reality in anyway. E.g. exec/posix.rb could just as easily have
specified:
  defaultfor :foo => :nonsense
And it would have a specificity of 1 (yay).

This stops working with the changes in this pull request to
make specificity actually evaluate whether the specified hash
is match in anyway.

So, this commit adds the :feature support to defaultfor which
exec/posix.rb already assumed it had. That file was the only
use of 'defaultfor :feature' I found, but adding this support
seems like potentially useful as an enhancement.