(#17067) Add packaging data files to ext

This commit adds ext/build_defaults.yaml and ext/project_data.yaml, both of
which define the targets, files to be installed, and package types to be
installed. This allows our standard packaging tools to work.

This also updates the .gitignore to include the ext/packaging directory, where
the packaging tools will be cloned.
(maint) Add parens to system call to disambiguate the *.
(#17067) Load packaging tasks when available

This commit adds code to the Rakefile that loads packaging.rake if it exists.
That file defines tasks to fetch and remove the packaging tools, and to load
them when they are present.
(#17067, #14612, #19319) Templatize and improve the mcollective.spec

Our packaging tools expect to find a redhat spec template in ext/redhat. This
commit copies the current mcollective specfile into an erb file. It also brings
in the work of https://github.com/puppetlabs/marionette-collective/pull/41 to
add systemd files for the systemd init system and updates the specfile to use
them on systems with systemd.  Thanks to Steve Traylen (traylenator on github)
for the systemd work included here.
(#5924, #14206) Update debian packaging to use quilt instead of dpatch

dpatch is a long deprecated patch mechanism for debian. It is now a lintian
error instead of a warning. This commit updates the build to use quilt instead
of dpatch. It also removes unneeded patches that weren't even being applied and
also add the source/format file to indicate the package uses the quilt
standard. The commit also applies the initlsb.dpatch patch to the debian init
script for debian.
(#17067) Add a debian changelog erb template

The packaging tools expect to have a debian changelog template available to
evaluate during the debian package build. This commit adds a simple one.
(#17067) Update debian/rules to use install.rb

Previously a Makefile was sourced and used to install mcollective. Now that
install.rb is available to make the install experience consistent across
platforms, it can be used instead of the makefile. This commit updates the
rules file to use install.rb instead of that makefile.
(#17067) Simplify mcollective.install file

Previously the mcollective.install file specified the destination directory,
even though it didn't differ from the source. It also installed the init script
directly. This commit removes the destination half of the file, as it is
implied in the source pathing. It also removes the init script installation,
which happens automatically because of how the file is named in the debian
directory.
(#15342, #17804) Add build-depends on ruby-stomp, rubygems, ruby

Using to install.rb on debian means ruby must be present on the system.
install.rb verifies that both rubygems and the stomp library are present, so
build dependencies are need for those as well. This commit adds those build
dependencies to the debian control file.
(#17067) Prefix destdir onto plugindir and sbindir in install.rb

Previously sbindir and plugindir both did not get destdir prefixed onto them,
which meant that building for most packaging systems would fail when install.rb
tries to write to /usr/sbin or /usr/share without having root. This commit
prefixes destdir so those directories are correctly handled.
(#17067) Update Rakefile to invoke new tasks

This commit updates the logic of the Rakefile to maintain backward
compatibility with the old build tools. Now the top level tasks like deb, rpm,
gem, and doc simply wrap invocations of package:deb, package:tar, package:rpm,
package:gem, and package:doc. The pkg directory (where packages built using the
new tools go), is then moved to the build directory to maintain compatability.
This allows the same tasks to be invoked with the same results. There are some
caveats.
  - First, only the RELEASE can be specified via environment variable. The version
    can be changed by tagging the project and the name can be changed by editing
    ext/project_data.yaml.
  - Second, the version is no longer static/determined by constants in the
    rakefile. It is linked to the git describe, which is based on the last
    signed tag.