[TASK] Extend Regular DataHandler functional tests

* add third tt_content element with localization in live context
* add new tt_content delete placeholder in different workspace
* populate changes to all scenarios in live and workspace context

Releases: 6.2, 6.3
Resolves: #59881
Change-Id: I644e264048a5c33c0a613d5f8440975cabd40721
Reviewed-on: https://review.typo3.org/31588
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[TASK] Disable notifications

Change-Id: I245db7b621ecd1d994b833da4a18fe1687a437d0
[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
[WIP][TASK] Extract overlay handling to common class

Change-Id: I6af332f1044011ffb84e57398d91a140806b6f03
[BUGFIX] Failing cascaded delete action of localized elements

Having a record in live workspace with an accordant localization
leads to the fact that actions to the default language also have
an impact to all localizations.

In a workspace, first deleting the localization, then deleting
the record of the default language, ends up in actually having
reverted the previous deletion of the localization.

The solution is to check for delete placeholders in
DataHandler::deleteL10nOverlayRecords().

Resolves: #59113
Releases: 6.2, 6.3
Change-Id: I888c83a58d591f57bc2ea75a49fa603a56a7f722
[FEATURE] Ease previewing custom record data in workspace module

Currently only pages, pages_language_overlay and tt_content have
the possibility to open a preview in the website frontend.
A hook needs to be used to open the preview for custom records
(since possibly the location of the rendering plugin and its
page needs to be resolved).

To ease that behaviour a new Page TSconfig setting is added:
options.workspaces.previewPageId

Possibilities:
* options.workspaces.previewPageId = 123
* options.workspaces.previewPageId = field:pid
* options.workspaces.previewPageId.tx_myext_table = 123
* options.workspaces.previewPageId.tx_myext_table = field:pid

Resolves: #59144
Releases: 6.3
Change-Id: I44fffa6fffb1ccc8af79e6dea48415cdf281cb01
[WIP][FEATURE] Rework workspace notification settings

Integrate a more flexible notification behaviour.

Resolves: #35245
Releases: 6.3
Change-Id: Icb680fe85fab61a51d53e3afb94b51a4930e180c
[TASK] Integrate collection selection behavior in workspace module

Since TYPO3 6.2 parent-child structures are visualized in
the workspace module. However, this representation lacks
the possibility to select all elements of that accordant
collection by one click.

A new event "holdclick" is integrated that is fired after
holding the mousedown event for 400ms. This event then
leads to have all records of the collection selected.

The regular mousedown (click) behavior still stays the same.

Resolves: #60010
Releases: 6.2, 6.3
Change-Id: I98d26f125428446157294866484f8be7106b0c51
[TASK] Simplify record icons in workspace module

The record details view renders record icons for both live and
versioned record. However, this representation is shown rather
stand-alone and can be combined with the accordant headers.

Resolves: #60015
Releases: 6.2, 6.3
Change-Id: I2f468a06271f335c491d90d825f7bcef7a9db9f6
[TASK] Possibility to disable grouping in workspace module

The workspace modules uses the ExtJS component GroupingStore
per default to group and nest version by page path. However,
this behavior get unhandy if all versions of all pages shall
be sorted by a particular column.

A new checkbox "group by path" shall be added to the top
columns menu to individually disable/enable this behavior.
Changes to that state are stored with the preferences of
a backend user for the accordant workspace.

Resolves: #60037
Releases: 6.2, 6.3
Change-Id: I8e9a2f3f14870c90ea5988a0182a54b22762390e
[TASK] Refactor file references relations retrieval

The retrieval of file references in BackendUtility
is currently bound to the thumbCode() method but
is useful for other components as well.

Resolves: #60054
Releases: 6.2, 6.3
Change-Id: Id92bdeaed24d8924285a640f905ffd55db21da4d
[WIP][TASK] Missing visual representation of sys_file_reference

Resolves: #60011
Change-Id: I6d22619c264ff0e5411a47b2d566ec2c9b7c2607
[BUGFIX] Wrong nesting of deleted versioned child records

If deleting an IRRE child reference, the nesting leving in the
workspace module is not shown correctly. The reason for that is,
that the sys_refindex entry points to the live id of the deleted
child record.

This change takes care of correct visualization only, but does not
touch the sys_refindex behavior in this case.

Resolves: #59853
Releases: 6.2, 6.3
Change-Id: I09970d12ba10e528c150275952ec4c9ff8333a0a
[EXPERIMENTAL][BUGFIX] Wrong sys_refindex for deleted child records #2

Resolves: #59874
Releases: 6.2, 6.3
Change-Id: I850e2fe88999ce8db280d4ef426e43c85fff06da
[BUGFIX] Publishing delete placeholder affects other workspaces

On publishing a delete placeholder all other versions shall be
deleted as well, since the original record will be deleted after
that action. However, this is only valid for the live workspace
and using the legacy version behavior there.

DataHandler::deleteVersionsForRecord() calls
BackendUtility::selectVersionsOfRecord(), but without the
additional, but required, $workspace argument. Thus, all other
versions in other workspaces are deleted as well. The SQL query
to determine versions needs to be limited to either the live
workspace (for legacy versions) and the current workspace.

Resolves: #60249
Releases: 6.2, 6.3
Change-Id: If90511dc4ac2bc3dde6e58570e6bf10e4ac949db