[!!!][TASK] Rewrite install tool

Main features:
* The god class "Installer" is gone and split into two major parts.
A step controller handling major upgrade and install tasks, and a
tool controller handling the known install tool actions.

* The step controller is designed to be always called prior to the
tool controller, if a step needs execution, it comes up, otherwise
the tool controller will be executed.

* The entry point typo3/install/index.php is gone and substituted
by typo3/sysext/install/Start/Install.php. The file contains a
lengthy comment to document the main request flow and used GET/POST
parameters.

* Most parts of the install tool do not bootstrap the whole system
anymore, in general only the base bootstrap, dbal (if loaded),
extbase and fluid ext_localconf.php are loaded. This makes sure
the install tool can not fatal if some extensions ext_localconf
is broken. The whole install tool runs without any caching, so a fatal
in some cache file can not kill the install tool execution.

* Installing TYPO3 CMS on a dbal enabled system is now handled in
the step installer directly to make the according code easier to
understand.

* Rendering is done with a simplified fluid standalone view.

* All install tool forms are CSRF protected.

* A new and fully unit tested class structure is introduced, designed
to take care of the basic file and folder structure of the instance.
It is used during installation to create the needed structure and
can be called in the install tool to compare and fix the current
instance structure with the expected structure. In effect, the
"dummy" package is obsolete. An instance can be created by just
linking index.php, typo3_src/ and typo3/ within the document root,
the installer takes care of creating everything else.

* The installation procedure is released from the package handling.
Packages will be handled by the extension manager after initial
installation with another patch.

Loose ends:
* The whole package handling needs to be implemented in the
extension manager.

* Not all upgrade wizards work, this code area needs some love.

* A 'core' auto updater could be implemented now. A GSoC project
is currently running to realize this.

* The SQL schema migration API is a mess and should be refactored.
For now, another helper class is introduced to encapsulate some
of the nasty details.

* An auto configuration and configuration suggestion system is
planned and needs to be done. It should suggest best configuration
options in the install tool, and should auto configure the system
during installation in the last install step.

* If the backend or frontend fatals due to some extension that
triggers a fatal in ext_localconf or ext_tables (for example
due to a require() of a no longer existing file), a small helper
action in the install tool could find those extensions and suggest
to unload them.

Change-Id: Ice3248caa903449ad6a83ea4f234c7bd125bdb66
Resolves: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21468
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Tested-by: Alexander Opitz
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn

Conflicts:

	typo3/gfx/menu_dummy.gif
	typo3/install/index.php
	typo3/sysext/core/Classes/Core/Bootstrap.php
	typo3/sysext/dbal/Classes/Database/DatabaseConnection.php
	typo3/sysext/dbal/Classes/ExtensionManager/MessageDisplay.php
	typo3/sysext/install/Classes/Controller/AbstractController.php
	typo3/sysext/install/Classes/Controller/Action/ActionInterface.php
	typo3/sysext/install/Classes/Controller/Action/Common/InstallToolDisabledAction.php
	typo3/sysext/install/Classes/Controller/Action/Common/InstallToolPasswordNotSetAction.php
	typo3/sysext/install/Classes/Controller/Action/Common/LoginForm.php
	typo3/sysext/install/Classes/Controller/Action/Step/DatabaseConnect.php
	typo3/sysext/install/Classes/Controller/Action/Step/DatabaseData.php
	typo3/sysext/install/Classes/Controller/Action/Step/DatabaseSelect.php
	typo3/sysext/install/Classes/Controller/Action/Step/DefaultConfiguration.php
	typo3/sysext/install/Classes/Controller/Action/Step/EnvironmentAndFolders.php
	typo3/sysext/install/Classes/Controller/Action/Tool/AllConfiguration.php
	typo3/sysext/install/Classes/Controller/Action/Tool/CleanUp.php
	typo3/sysext/install/Classes/Controller/Action/Tool/ImportantActions.php
	typo3/sysext/install/Classes/Controller/Action/Tool/SystemEnvironment.php
	typo3/sysext/install/Classes/Controller/Action/Tool/TestSetup.php
	typo3/sysext/install/Classes/Controller/Action/Tool/Welcome.php
	typo3/sysext/install/Classes/Controller/BackendModuleController.php
	typo3/sysext/install/Classes/Controller/StepController.php
	typo3/sysext/install/Classes/Controller/ToolController.php
	typo3/sysext/install/Classes/Database/DatabaseConnectionMock.php
	typo3/sysext/install/Classes/FolderStructure/AbstractNode.php
	typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php
	typo3/sysext/install/Classes/FolderStructure/DirectoryNode.php
	typo3/sysext/install/Classes/FolderStructure/Exception/InvalidArgumentException.php
	typo3/sysext/install/Classes/FolderStructure/FileNode.php
	typo3/sysext/install/Classes/Service/SessionService.php
	typo3/sysext/install/Classes/Service/SqlSchemaMigrationService.php
	typo3/sysext/install/Classes/Status/StatusUtility.php
	typo3/sysext/install/Classes/ViewHelpers/Be/ContainerViewHelper.php
	typo3/sysext/install/Classes/ViewHelpers/ConstantViewHelper.php
	typo3/sysext/install/Classes/ViewHelpers/File/ImageDimensionViewHelper.php
	typo3/sysext/install/Classes/ViewHelpers/File/SizeViewHelper.php
	typo3/sysext/install/Classes/ViewHelpers/Format/CropViewHelper.php
	typo3/sysext/install/Resources/Private/Language/Report/locallang.xlf
	typo3/sysext/install/Resources/Private/Partials/Action/Common/StatusMessage.html
	typo3/sysext/install/Resources/Private/Partials/Action/Step/DatabaseConnect/ConnectDetails.html
	typo3/sysext/install/Resources/Private/Partials/Action/Tool/ImportantActions/SetNewEncryptionKey.html
	typo3/sysext/install/Resources/Private/Partials/Action/Tool/TestSetup/DisplayTwinImage.html
	typo3/sysext/install/Resources/Private/Partials/Action/Tool/UpdateWizard/ListUpdates.html
	typo3/sysext/install/Resources/Private/Templates/Action/Step/DatabaseData.html
	typo3/sysext/install/Resources/Private/Templates/Action/Step/DatabaseSelect.html
	typo3/sysext/install/Resources/Private/Templates/Action/Tool/Welcome.html
	typo3/sysext/install/Resources/Public/Images/Icon/BackendModule.gif
	typo3/sysext/install/Resources/Public/Images/Menu/FolderStructure.png
	typo3/sysext/install/Resources/Public/Images/TestReference/About.txt
	typo3/sysext/install/Resources/Public/Images/TestReference/Font.gif
	typo3/sysext/install/Resources/Public/Javascript/Install.js
	typo3/sysext/install/Resources/Public/Stylesheets/Action/Common/Install.css
	typo3/sysext/install/Start/Install.php
	typo3/sysext/install/Tests/Unit/FolderStructure/AbstractNodeTest.php
	typo3/sysext/install/Tests/Unit/FolderStructure/DirectoryNodeTest.php
	typo3/sysext/install/Tests/Unit/FolderStructure/FileNodeTest.php
	typo3/sysext/install/Tests/Unit/FolderStructure/RootNodeTest.php
	typo3/sysext/install/ext_tables.php