datasources: Add support for specifying multiple datasources

If multiple sources are specified, the first available source is used.
These aren't really timeouts, I would rather call them intervals