Add user and chain timezone detectors

This PR mainly adds a **user timezone detector**, based on SonataUserBundle (if the bundle is enabled).

I also added a ``chain`` timezone detector, which loops over the injected detectors and returns the first timezone which is found. This chain detector is the new default one. For the moment, only the user and locale detectors are injected.

I also added tests for all of this.