[5.0] Reintroduce ServiceProvider::when(), which allow registering/loading service provider only when events is fired.

Signed-off-by: crynobone <crynobone@gmail.com>
Tweak some bootstrapping logic.
Fix class name.
Load all remaining deferred providers on console boot.
[5.0] Properly set request instance for console

While most of the time "url" is not needed on artisan command, you might still use it when using queue to send email (password resets etc), or include illuminate/html which currently break all artisan command.

Signed-off-by: crynobone <crynobone@gmail.com>
Merge pull request #6179 from crynobone/feature/when-service

[5.0] Reintroduce ServiceProvider::when(), which allow registering/loading service provider only when events is fired.
Merge pull request #6216 from crynobone/patch/request-for-console

[5.0] Bugfix to properly set request instance for console
[5.0] Illuminate\Foundation\Artisan is no longer needed in after the HTTP Kernel refactors.

Signed-off-by: crynobone <crynobone@gmail.com>