WIP datasources: Add support for specifying multiple datasources

WIP

If multiple sources are specified, the first available source is used.
@jonboulle yeah, that looks better to me, with the one addition that something like closing the channel is used to signal to datasources that lost the race to exit their goroutine.