(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=`.
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
Merge branch 'master' of https://github.com/puppetlabs/puppet