core: rework the logging part on providers loading/registration + if the window cannot be created, abort (sys.exit(1)).

If you want the full backtrace, put kivy in log_level=trace (-c kivy:log_level:trace)
It will show the provider used, and the providers ignored:

[INFO   ] [Image       ] Providers: img_dds, img_pygame, img_pil, img_gif
[INFO   ] [Text        ] Provider: pygame
[INFO   ] [Window      ] Provider: pygame

And when something is wrong:

[INFO   ] [Image       ] Providers: img_gif (img_dds, img_pygame, img_pil ignored)
[DEBUG  ] [Window      ] Ignored <sdl> (import error)
[DEBUG  ] [Window      ] Ignored <x11> (import error)
[CRITICAL] [Window      ] Unable to find any valuable Window provider at all!
[CRITICAL] [App         ] Unable to get a Window, abort.
Merge branch 'master' of ssh://github.com/kivy/kivy