autoload: Create a Drupal-specific ClassLoader, and use it instead of the one provided by Composer.
For the start, this is simply a copy of Composer's ClassLoader.
autoload: Switch our ClassLoader fork to Composer's PSR-4 ClassLoader as proposed in https://github.com/composer/composer/pull/2121/files
autoload: Register modules as PSR-4 instead of PSR-0, without moving the classes. Allow for multiple paths per prefix. Register 3 directories per module namespace:
- ../lib/Drupal/(modulename)
- ../lib
This will be cleaned up later.
autoload: Register core namespaces as PSR-4
autoload: Use a loader with additional predictor character for PSR-4. Leave PSR-0 unchanged.
autoload: Register test namespaces as PSR-4.
plugin discovery: AnnotatedClassDiscovery with PSR-4 style directories.
plugin discovery: Allow annotation namespaces with multiple directories attached.
Register 2 PSR-4 directories for each module namespace:
- ../lib/Drupal/(modulename)
- ../lib
This will be cleaned up in a follow-up.
Let DrupalKernel::getModuleNamespacesPsr4() return two PSR-4 directories per module:
- lib/Drupal/$modulename
- lib

This will be cleaned up later.
Port discovery of test classes to PSR-4.
Introduce a script to move module-provided class files to their new PSR-4 location.