Kernel: add proper configuration loading.

This way, we'll be able to load entire symfony bundles (if we match the
requirements). This makes it easy for us to integrate things like
Monolog.
Kernels: apply the Symfony way.

This is the Symfony way. I wanted to hide as much things in our
AppKernel that are not actually relevant. In Symfony itself you've only
got access to the AppKernel with these methods. Therefore, I've moved
some functionality over, which may seem dirty for now, but as we move
more towards Symfony, it will get cleaned up.