(PUP-3236) Support PUPPET_LOADED env var in Gemfile

This commit adds support for an environment variable, PUPPET_LOADED,
to be set during bundle installation.  If set, the variable will
prevent the puppet gem from being loaded; the use case is for test
environments where you already have puppet available on the load path.
Merge pull request #3086 from cprice404/maint/stable/PUP-3236-gemfile-puppet-loaded

(PUP-3236) Support PUPPET_LOADED env var in Gemfile
(PUP-3136) Fix upstart acceptance test on lucid

Due to the fact that this acceptance test depends on the output
of `service rabbitmq-server status`, it was failing on lucid.
This was due to the fact that lucid has an older version of rabbitmq
and therefor a different output than trusty and precise.

Update the regexes and exit codes so that they support lucid. It's
worth noting that since these tests are based on the text output
of `service rabbitmq-server status`, they are fragile and may break
if rabbitmq changes the output of its init.d script. Additionally, if
rabbitmq switches from init.d to upstart we will need to find another
package.

Paired with Will Hopper <whopper@puppetlabs.com>
Merge pull request #3087 from jpartlow/issue/stable/pup-3136-fix-acceptance-on-lucid

(PUP-3136) Fix upstart acceptance test on lucid
(PUP-3231) Don't check suitability if resource is missing tags.

A transaction applying resources has to lazily determine suitability of
resources, since changes being made during the application of the
catalog can alter whether the system is now in a state to apply a
resource. Specifically in the case of providers, a provider may become
suitable because of package installation performed during the
application. However if tags are being used, and a resource has not been
tagged, then it should not matter whether or not the specified provider
has been found for the resource.

Prior to this patch, unsuitable, untagged resources would halt the
transaction. With this patch, we check whether the deferred resource is
missing_tags? before issuing an error. With that change, a tagged run
will no longer halt if an untagged resource's provider is not available.
Merge pull request #3089 from jpartlow/issue/stable/pup-3231-tags-dont-skip-suitability-check

(PUP-3231) Don't check suitability if resource is missing tags.
Merge branch 'stable'
Merge branch 'master' into puppet-4