(#13542) PMT install/upgrade from a local tarball

This patch adds support for installing/upgrading puppet modules
from local tarballs to PMT. This support depends on a new forge API
introduced in:
  https://github.com/puppetlabs/puppet-forge-api/pull/32
In addition to the posibility of installing modules from tarballs a new
algorithm for module dependency resolution is also introduced.
The algorithm is capable of backtracking so is able to find resolutions
even in situations in which the original algorithm would have failed.
Many of the data structures used by the depedecy resolution code have
been changed but care has been taken to preserve backward compatiblity
of any externally visible data structures.
Also the installer and upgrader applications have been greatly unified,
the majority of their code is now factored out in their new common
superclass named 'Resolver'.
The patch also adds new and updates existing unit & acceptance tests.