(maint) Update developer readme for bundler setup.

The README_DEVELOPER.md instructions had some out of date notes
regarding gemspec and initial setup.  While setting up a puppet checkout
with the structure of a locally installed gem is possible, it is more
complicated and requires generation of a puppet.gemspec since this is no
longer included in the repository.

Given that a bundle install/bundle exec puppet cycle now works fine,
this commit updates the readme to provide simple instructions for a
bundler checkout and setup, and includes the steps for generating a
gemspec if a local gem style setup is preferred.
(maint) README_DEVELOPER emphasizes bundler only.

Because bundler is now the recommended method of setting up a development
instance of Puppet, this commit removes the alternative, more complicated
method of setting up the source repository as a gem, and emphasizes use of
bundle exec for all command line interaction.
(#21023) Flush caches on preferred_run_mode change

`Setting.preferred_run_mode` affects a lot of settings values -- such as the
modulepath that gets used for environments. Prior to f4e229e the `run_mode` was
an actual setting rather than an attribute of the settings class. This meant
that changing the value of the `run_mode` would trigger a cache flush on
Settings objects so that things like `modulepath` would be updated.

This patch:

  - Moves cache flushing out of the `Settings.set_value` method and into a new
    method `flush_cache`.

  - Adds tests to ensure that `flush_cache` is called by both `set_value` and
    `preferred_run_mode=`.
Merge branch 'stable'

Conflicts:
	spec/unit/file_serving/metadata_spec.rb
Clean up FormatHandler specs
consolidate block evaluation on format creation
Don't directly test FormatProtector as it's an implementation detail
Remove FormatProtector
Extract the mixins for FormatHandler to a separate module
Move FormatSupport into its own file
Merge pull request #1707 from Sharpie/21023-fix-preferred-run-mode

(#21023) Flush caches on preferred_run_mode change
(doc) Add yardoc for Puppet::Node::Environment
Merge pull request #1705 from jpartlow/maint/readme-developer-bundler

(maint) Update developer readme for bundler setup.
Merge pull request #1702 from adrienthebo/doc-puppet_node_environment

(doc) Add yardoc for Puppet::Node::Environment
Merge branch 'refactor/formathandler'

* refactor/formathandler:
  Move FormatSupport into its own file
  Extract the mixins for FormatHandler to a separate module
  Remove FormatProtector
  Don't directly test FormatProtector as it's an implementation detail
  consolidate block evaluation on format creation
  Clean up FormatHandler specs
(maint) Don't use protected_format in indirector
(maint) Remove incorrect spec in format_handler

This spec wrongly expected a guaranteed order returned by FormatHandler::formats.
(#6808) Warn about file content sync no-ops

Normally, a declaration of both `target` and `content` for a File resource in a
manifest will cause a compile error.  However, if a File resource is ensured to
be `present`, it is possible to specify `content` for a path that turns out to
be a symlink on the agent.  Currently, since this situation is not discoverable
untill the agent is applying the catalog, the resource will silently fail to
apply `content` changes.

This patch adds a warning indicating that no sync of `content` will occur.
Merge pull request #1716 from Sharpie/6808-warn-about-symlink-noops

(#6808) Warn about file content sync no-ops
(#21324) Pip provider query should be case insensitive.

The `pip` provider will repeatedly install a package if the case does not match
what is in `pip freeze`.