FindBoost: Remove extra indentation level

A large portion of the file was still indented for historical reasons.
FindBoost: Mark Boost_DIR cache entry as advanced
FindBoost: Use PATH_SUFFIXES to look in "Program Files"

The CMake find_path command looks under the proper "Program Files"
directories on Windows with any of the provided PATH_SUFFIXES.  This is
simpler and more robust than directly reading ENV{ProgramFiles}.  Once
Boost_INCLUDE_DIR has been located we already look next to it for the lib
directory anyway, so we do not need special help to find Boost libraries
under "Program Files".
FindBoost: Overhaul caching and search repeat behavior

Overhaul the implementation as follows:

(1) Do not cache result variables such as Boost_VERSION,
Boost_LIB_VERSION, Boost_LIBRARY_DIRS, Boost_${COMPONENT}_FOUND,
Boost_${COMPONENT}_LIBRARY, or Boost_LIB_DIAGNOSTIC_DEFINITIONS that are
derived uniquely from other search results.  The user should not edit
them anyway.

(2) Add cache value Boost_LIBRARY_DIR to hold the single directory
expected to contain all libraries.  Once one library is found, search
only that directory for other libraries.

(3) Use the find_library NAMES_PER_DIR option to consider all possible
library names at the same time.

(4) Collect all documented input and cache variables and detect when
they have been changed by the user.  Discard prior search results that
may have been influenced by the changes and search for them again.
Environment variables are not expected to be persistent so use them only
as hints and do not consider changes to them to be meaningful.
FindBoost: Construct a clean Boost_LIBRARIES value

Construct the value from scratch based on the component library list.
Avoid accumulating values from repeated find_package(Boost) calls.
If Boost is not found, Boost_LIBRARIES should be empty.
FindBoost: Refactor Boost_FOUND computation and version check

Construct an initial Boost_FOUND value immediately after searching for
Boost_INCLUDE_DIR.  Base the result only on whether header files for the
requested version were found.  Then after searching for component
libraries update Boost_FOUND based on whether all requested components
were found.
FindBoost: Rewrite documentation

Write new documentation for this module.  Ensure that it formats
correctly in "cmake --help-module FindBoost" output.  Show the basic
form of calling find_package(Boost).  Document all result variables,
input variables, and cache variables appropriately grouped together.
Explain the search process and how it re-runs when changes are made.
Explain the difference between finding headers/libraries versus finding
a "Boost CMake" package configuraiton file.

Drop the emphasis on Boost_ADDITIONAL_VERSIONS because the
implementation should predict most future versions instead.
Merge topic 'FindBoost-cleanup' into next

0496782 FindBoost: Rewrite documentation
4d92f6c FindBoost: Refactor Boost_FOUND computation and version check
0100f88 FindBoost: Construct a clean Boost_LIBRARIES value
5b9149e FindBoost: Overhaul caching and search repeat behavior
5ec8a69 FindBoost: Use PATH_SUFFIXES to look in "Program Files"
d3260a4 FindBoost: Mark Boost_DIR cache entry as advanced
531612d FindBoost: Remove extra indentation level
string: Clarify regex documentation of '-' behavior

Mention that it is only special inside brackets.  Show an example.

Suggested-by: Alan W. Irwin
Merge topic 'doc-regex-range' into next

0ed6ff7 string: Clarify regex documentation of '-' behavior
GetProperty test: move doc property tests into main process

They will not raise an error in the normal case so we do not need to run them
in their own process.
Add several get_property() tests

Add tests for some get_property() uses not covered by existing tests.
Merge topic 'start-contributing-irc-session' into next

2e3210c Add several get_property() tests
f444532 GetProperty test: move doc property tests into main process