Clean up cfengine-nova package scripts and add HPUX support.

The package scripts have long been a mess, and with HPUX support, we
are adding a fifth platform to the already existing and highly
redundant four scripts.

So this commit cleans up all that by abstracting the common platform
operations into separate snippets, and leaving the "meat" of the
script to be shared between all platforms. This significantly reduces
the maintenance overhead and also makes it more resilient by keeping
the tricky parts (like detecting whether or not you are doing an
upgrade) in the snippets so you don't have to care about it when
modifying the platform shared part.

Also added a README to describe how package scripts work on the
different platforms (among all the five platforms, not any two
platforms do it the same way). This gave rise to how the snippets are
organized, which is a bit more messy than I would have wanted, but it
seems to be the best way to cover all bases. See the produce-script
script for more details on this organization.

Currently only the cfengine-nova package is covered by the new snippet
system, but this can be extended to the other packages later.

Redmine #6798.