displayErrors is "0" with the Production Application Context / Preset,
and is set to "1" for Debugging / Development Context and its Preset.
"-1" is stated as the "default" setting but overriden after a fresh
installation.

The install tool option claims that "-1" is the default, but it really isn't
the default per-se, but only if LocalConfiguration.php does not have the
setting used at all. Thus, the info "Default value" is removed.

If you overwrite an extension or download a new version with the
extension manager, the dependency check uses old ext_emconf dependencies
which are stored in the PackageManager. This patch extends the
PackageManager api to be able to create a new Package instance with
fresh ext_emconf information and replace the current instance. This new
function is called after an extension was extracted from a file or
was downloaded from the extension manager.

This change caused trouble, as it was not possible any more to explicitly enable
cHash usage. In situations where some arguments are required for a cHash, this
will lead to a broken page (404) when the cHash is skipped.

As the possible gain of not having the cHash is low but the possible impact is high
and a potential fix is breaking or at least fragile as well, this feature is reverted again.

Resolving of placeholder for field types text and input has been moved
from the element rendering into the form data providers. The data
provider approach allows reuse of existing providers and data groups and
reduces the amount of database queries by having access to previously
parsed data.

If you update an extension, the current version is included in the
confirmation dialog. This might confuse the user as this version is
already available. The patch re-adds the usage of the repository
function to exclude the current used version in the query.

The AjaxRequestHandler now first checks in the Router if an AJAX
route exists. A new flag "ajax" in the routing mechanism allows to call
ajax-based URLs which are then handed to the AJAX Request Handler.

All controllers now receive proper Request and Response objects.

All previous logic still works, but can slowly be migrated to the Routing
concept.

Two hooks for the OpenID process:
* "authRequest" to modify the OpenID authentication process,
e.g. to request data like nickname and email address.
* "getUserRecord" is called when the claimed ID is translated into
a user record. At this stage it is possible to register a new user.

To make use of the newly introduced ModuleTemplate API, a new
Controller for Backend Modules provided with extbase is created.
It prepares the ModuleTemplate and some convinience methods to
unify the docheader throughout all modules.

A new class structure around "ModuleTemplate" is introduced to
substitute the rusty "DocumentTemplate". The architecture can
be seen as wrapper around the main html content a backend
controller action creates. ModuleTemplate provides an API
especially for the "doc header" and unifies its display
and creation.

The patch releases single controller actions from fiddling with
doc header details like actual button HTML and hands over
this concern to the framework, so it can steer these parts
at a central place.

Since this API and its embedding in the framework is a rather
complex task that will require further tweaks, this main API
is mostly marked as "experimental" for now: It will further
settle with 8. For extension authors it means that *if* this
API is used, there may be code adaptions required in version 8
since parts of the API will be adapted to further needs.

Avoid evaluating the display conditions for fields on a Flexform sheet
more than once. Multiple evaluations of the same conditions can lead to
wrong result due to fields having been removed by the first evaluation.

Provide the foundation to get rid of BackendUtility::getRecordTitle()
in FormEngine scope by:

* adding a recordTitle field to the FormDataCompiler result array
* adding a provider that fills in the recordTitle field
* using the recordTitle in OuterWrapContainer where appropriate
* ensuring the TcaTypesRemoveUnusedColumns provider does not remove
columns used to generate the label.

With the rewrite of the FormEngine, all data defined as select
fields in TCA became arrays in the data provision. Therefore
displayConditions based on single values are not evaluated
correctly anymore.

A check was added, when the array contains only one value, this
one is used to perform the evaluation.

Currently when the extension list from TER is fetched from the database,
all installed extensions are checked for an update. This is because the
TER extension list needs a css class for available extensions but the
wrong method is used to gather the needed information within the
ListController.

If an extension defines a classmap in ext_emconf.php or composer.json which points
to a file instead of a directory. The relative path calculation adds
a trailing slash to the file name, which breaks the class loading.

This trailing slash needs to be removed. As a bonus the obsolete trailing slash
is also removed from directories.