(#15264) Custom title patterns can fail cryptically.

If a type uses a composite namevar and none of the supplied title
patterns matched, #parse_title would return a nonsensical array value.
This would lead to unexpected behavior like output like:

    /usr/lib/ruby/1.8/puppet/puppet/resource.rb:235:in `to_hash': undefined method `merge' for #<Array:0x007ffba3d80d78> (NoMethodError)

If a type overrides the title_patterns method and nothing matched,
there's no possible way to recover from this. To prevent misleading
errors from being thrown, this patch raises an error if none of the
title patterns matched.
(Maint) Whitespace cleanup of CONTRIBUTING.md

Just noticed some whitespace errors.  This is a whitespace only change
that removes trailing whitespace from CONTRIBUTING.md
Add HOWTO hint on topic branches in CONTRIBUTING

Without this patch it's not very clear how to create a topic branch.
This has been a problem in the past because we often get pull requests
from the master branch to the master branch which can be confusing when
working outside of the GitHub Web UI.

This patch addresses the problem by providing a concrete example of how
to create a reasonable topic branch and start using it with two
commands.
Make the example in CONTRIBUTING imperative and concrete

Without this patch applied the example commit message in the CONTRIBUTING
document is not a concrete example.  This is a problem because the
contributor is left to imagine what the commit message should look like
based on a description rather than an example.  This patch fixes the
problem by making the example concrete and imperative.

The first line is a real life imperative statement with a ticket number
from our issue tracker.  The body describes the behavior without the patch,
why this is a problem, and how the patch fixes the problem when applied.
Mark git diff --check as inline code
Merge branch 'fix/2.7.x/my_contribution' into 2.7.x

* fix/2.7.x/my_contribution:
  Mark git diff --check as inline code
  Make the example in CONTRIBUTING imperative and concrete
  Add HOWTO hint on topic branches in CONTRIBUTING
  (Maint) Whitespace cleanup of CONTRIBUTING.md
Merge branch '2.7.x' into 3.x

* 2.7.x:
  Mark git diff --check as inline code
  Make the example in CONTRIBUTING imperative and concrete
  Add HOWTO hint on topic branches in CONTRIBUTING
  (Maint) Whitespace cleanup of CONTRIBUTING.md
Merge pull request #892 from adrienthebo/bug/2.7.x/15264-fail_on_no_matching_title_patterns

Bug/2.7.x/15264 fail on no matching title patterns
Merge branch '2.7.x' into 3.x

* 2.7.x:
  (#15264) Custom title patterns can fail cryptically.
Merge remote-tracking branch 'rahul/ticket/3.x/15803_zpool_instances' into 3.x

* rahul/ticket/3.x/15803_zpool_instances:
  (#15803) add self.instances to zpool provider
(#15803) Split string for ruby 1.9

Previously, the spec test passed on ruby 1.8, because String includes
the Enumerable module, so that the collect method could be called on the
string. This doesn't work in ruby 1.9.

This commit splits the output of the svcs command on newlines, and then
collects the service instances.
Merge branch 'maint/3.x/15803_break' into 3.x

* maint/3.x/15803_break:
  (#15803) Split string for ruby 1.9
(#10978) add instances to smf

Before the addition of smf instances, the smf service instances were not
present in the `puppet resource service` output. Instead it used to
collect the legacy init.d services. This commit adds the self.instances
method which collects the `svcs` output and parses it to find smf
instances. This commit also adds test cases for this feature.