[TASK] Speedup travis build

Different build environments have been set up
mainly to be able to execute lint, unit tests
and functional tests in parallel. However
setting up the build environment on travis
also takes quite some time, so that overall
build times are quite high.

This change cleans up the travis configuration,
reduces the number of builds to only the configured
PHP versions and executes lint, unit tests and
functional test in parallel using the command line
tool "parallel"

By doing so, the overall build time can be reduced
by at least 50%

This change also removes the installation of a
current git version which has been added to
fix temporary Travis service errors.

Releases: 6.2
Change-Id: Ic1591ed0b596df22a648a825639c1a2bbc7ffcc2
Reviewed-on: https://review.typo3.org/27540
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Replace the table definition manipulation by signals

During installation of extensions the Extension Manager does
not take the Category API into account. The code to do so is
present in the Install Tool in the Database Compare Tool. It is
cumbersome to switch to the install tool to update the database
in order to use the category fields. The install tool and extension
manager currently need to know which components manipulate
the table definitions and this is bad coupling of components
which shouldn't know each other.

This fix replaces the individual calls to the components by two
signals and thus a generic approach.

Fixes: #53016
Releases: 6.2
Change-Id: I7f99ad7cadc323d4f8b975de97e4c665a82647a5
Reviewed-on: https://review.typo3.org/26506
Reviewed-by: Fabien Udriot
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Prevent double slash in isWithin check

If the root folder is used as folder identifier (/) no slash is appended
so that isFirstPartOfStr works correctly in the isWithin check in
LocalDriver.

Resolves: #55740
Releases: 6.2
Change-Id: I2af1cd3759656502ea84887828dfb222f0a07b64
Reviewed-on: https://review.typo3.org/27379
Reviewed-by: Markus Klein
Reviewed-by: Markus Kasten
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
[BUGFIX] Fix fatal errors upon package installation

During the installation of packages via the extension
manager a fatal error can occur when the ext_localconf
and ext_tables are loaded and use classes from their own
package. This happens because the package is activated
but the class loader is not aware yet of the new package.

This patch adds the extension temporarily to the runtime
activated packages in the class loader.

Fixes: #53795
Releases: 6.2
Change-Id: I195b86284b9a288f4d7c102168ec18ed8683cb07
Reviewed-on: https://review.typo3.org/27544
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Allow multiple aliases for a class

When working on #55559 (refactoring class alias handling)
accidentally code was introduced to avoid more than
one alias for a class name.
Remove this code to make multiple aliases work again.

Fixes: #55897
Releases: 6.2
Change-Id: I8b4b721c57c52d117130947fe92c564d6ddcdd9b
Reviewed-on: https://review.typo3.org/27558
Reviewed-by: Claus Due
Tested-by: Claus Due
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[BUGFIX] Avoid fatal error if adding composer package

Adding composer packages to „Packages“ folder will cause a fatal error
This fix prevents the extension manager from handling not legacy packages

Resolves: #55754
Releases: 6.2
Change-Id: I3ac491c8566b14578f5d3a604c63dffc1310d042
Reviewed-on: https://review.typo3.org/27402
Reviewed-by: Thomas Maroschik
Reviewed-by: Marcin Sągol
Tested-by: Thomas Maroschik
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] cache_clearAtMidnight conflicts with content start/endtime

If the config.cache_ClearAtMidnight is set, the current code of
TypoScriptFrontendController::get_cache_timeout() will not take
content's starttime/endtime into account. Thus if the content
(or other configured record) has start or end time before the
midnight, it will not be taken into account and the cache timeout
will be wrong.

Change-Id: I732da8f07270a86c62b7ce5028b12b630bb2e027
Resolves: #53028
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/24951
Reviewed-by: Wouter Wolters
Reviewed-by: Peter Foerger
Reviewed-by: Benjamin Mack
Tested-by: Benjamin Mack
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[TASK] Initialize FormProtectionFactory later in alt_doc.php

The FormProtectionFactory can be initialized later.
Move the initialization to the point where it is needed.

Resolves: #55856
Releases: 6.2
Change-Id: Id83304341ddec4cc2d4d5c8a6bd40463277a37b5
Reviewed-on: https://review.typo3.org/27533
Reviewed-by: Benjamin Mack
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[TASK] Cleanup ArrayUtility::sortArraysByKey()

Replace strtolower and ternary operations with strcasecmp.

Change-Id: Ia962ef879c6ba1d91081db78f74fc577fa67c467
Resolves: #55899
Releases: 6.2
Reviewed-on: https://review.typo3.org/27559
Reviewed-by: Oliver Klee
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Use vfsStream for getFilesInDir() tests

Change-Id: I06bb7492146a9149917bc2fc9100fbdddd9b8d09
Resolves: #55871
Releases: 6.2
Reviewed-on: https://review.typo3.org/27539
Reviewed-by: Oliver Klee
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Missing label felogin_forgotHash

Resolves: #49440
Releases: 6.2, 6,1
Change-Id: Iea20a7e9c637c2f1f13c39eebe406d07edc8a2c3
Reviewed-on: https://review.typo3.org/27453
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Karol Lamparski
Tested-by: Karol Lamparski
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Switch order of tests

Execute unit tests first and lint last, since
the lint is las resort anyway and unlikely to fail.

Also use a simple printf instead of a php call.

Change-Id: I7471e4ac0b217e1a58d1324bd24fc7e2f517e17e