[DependencyInjection] added a way to automatically update scoped services

A service can now be marked as synchronized; when set, all method calls
involving this service will be called each time this service is set.
When in a scope, methods are also called to restore the previous version of the
service.
[FrameworkBundle] made the Request service synchronized

This change allows any service to depend on the Request (via a method
call) and always have the right Request instance without the need for
the service to be in the request scope (you still need to set the
Request reference as non-strict).
[HttpKernel] ensured that the Request is null when outside of the Request scope
fixed Request management for RequestListener
fixed Request management for LocaleListener
fixed Request management for FragmentHandler
[FrameworkBundle] added some functional tests