added a new interface for providers willing to register event listeners

In our quest to decouple service providers from Silex in order to make them reusable in other contexts like non-web contexts (see #352), the first step I propose to do is to add a new interface for providers willing to register event listeners. That way, you can call the `subscribe()` method if you have a dispatcher, and just ignore it otherwise.

The ultimate goal of course is to keep only what is Silex/Web specific in the boot method.

This is (a better) alternative to #836