[TASK] Some cleanup tasks

Whitespace and PHPDoc cleanup. Also an unused TYPO3_MODE check was
removed.

Additionally some global variable calls have been replaced with PHPDoc
annotated versions to improve IDE support.
[TASK] Refactoring properties in TabHandler

isRTE property was removed, therefore a reference to the calling
element browser hook was added, so the isRTE() method can be called
directly.

The unsed expandPage property was also removed, it can be accessed
through the reference to the browse links object.
[TASK] Prevent possible PHP warning in element browser hook

getTabConfig() method was restructured to make sure the requested
config key exists in the array.
[TASK] Introduced TabHandlerFactory class

This class is responsible for creating tab handlers and for providing
access to the tab  handler configuration.

It will also run the static getLinkBrowserInfoArray() method on all
configured tab handlers since this will be required in the link handler,
too.
[!!!][FEATURE] Multiple configurations for one table

It is now possible to have multiple configurations for the same table.
This was realized by placing the configuration key within the link
parameter.

For this new feature to work the configuration needs to be updated.

Existing links not containing a configuration key parameter should still
work.
[FEATURE] Filterable link browser record list

The records displayed in the link browser tab can now be filtered with
the option "additionalSearchQuery".

The configured query will be appended to the SQL query that is used for
getting the records in the record list.