agent: Add a ComponentSource to Component

This is a type of GSource which proxies all poll events from the sockets
in a Component. It’s necessary for the implementation of
GPollableInputStream and GPollableOutputStream.
This adds no new external API, but does add ComponentSource and
component_source_new() as new internal API.