[TASK] Restructure functional frontend tests

In the scope of enabling Extbase frontend rendering during
functional test runs, the response object contains multiple
data values for TypoScript ("default") and the called Extbase
actions. Processing them all at once just has practical reasons
to avoid additional frontend requests for each aspect.
To decouple the actual testing structure from assertions
and constraints, a new Contraint namespace has been introduced.

The irre_tutorial extension has been enriched with an accordant
frontend rendering for Extbase context to return structured JSON
data like in the current frontend tests.

This change contains Extbase TypoScript which will be activated
in a separate bugfixing change.

Resolves: #59521
Releases: 6.2
Change-Id: I42c0bf8957d9c4c1e4389049695512851b436d14
Reviewed-on: https://review.typo3.org/30687
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Own Layout Breaks Mail Message

With this patch it is possible to configure custom layouts
for the form, confirmation, and each type of post processor.
The backward compatibility is given, because this does not override
or break already existing configurations but provides some more
options to configure specific steps of the form process independent
of each other.
Therefore it prevents from breaking the layout of the confirmation view
and the HTML mail.

Resolves: #31951
Releases: 6.2
Change-Id: I3c015b53cd6d6efbd070d16bdc2111c7d60671aa
Reviewed-on: https://review.typo3.org/28526
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Markus Klein
Reviewed-by: Dmitry Dulepov
Tested-by: Dmitry Dulepov
[TASK] Disable notifications

Change-Id: I245db7b621ecd1d994b833da4a18fe1687a437d0
[BUGFIX] Define precedence of states in workspace module

The workspace module defines several states:
edited, moved, created, hidden, unhidden, deleted

The states "hidden" and "unhidden" are currently applied
after the action states. This change only uses the hidden
states if a record has been modified.

Resolves: #59118
Releases: 6.2
Change-Id: I95981306d61df38939a47579cb320dd93d51ce5b
[BUGFIX] Page tree does not visualize move targets

If moving an element to a different page, the page tree only
visualizes the change in the source page, but does not visualize
the target page.

The reason is that the move-pointer is used (t3ver_state=4)
instead of the move-placeholder (t3ver_state=3) in that case.

Resolves: #59114
Releases: 6.2
Change-Id: Iefa01e4c85e9fb753873d03e7638ac592c09a657
[BUGFIX] Preview of moved workspace elements on source page

If e.g. a content element gets moved to a different page, the
workspace preview link opens the source page (which does not
contain the element anymore, because it was moved).

Since the elements are shown on the correct page in the
workspace backend module, using the target page in the preview
link for the frontend is just obvious.

Resolves: #59143
Releases: 6.2
Change-Id: Ib84e65766e825cc26a66cbda9ffa8132c3a3ec18
[BUGFIX] Extbase behaviour concerning workspaces

Issue #26732 introduced some behaviour into Extbase that cannot
work on the long-run. The usual behaviour of TYPO3 is "fetch
live, then overlay". Avoiding that chain might lead to
several side-effects.

This change integrates a new property "_versionedUid" than
contains the specific uid of the versioned record (this is
similar to the already existing _localizedUid property).
Besides that, changes of issue #26732 are reverted.

Functional frontend tests are enabled for live and workspace
for all IRRE ForeignField scenarios.

Resolves: #59107
Releases: 6.2
Change-Id: Idc46fb86830bc3d750972adade178cf9c618ece5
[BUGIFX] Field labels not shown in workspaces history

Field labels are not shown if opening the history of an
element in the workspace module.

Resolves: #59546
Releases: 6.2
Change-Id: I3f522957dad8e36046b508dde658496f1cec6008