WIP datasources: Add support for specifying multiple datasources

WIP

If multiple sources are specified, the first available source is used.
This gives a slightly different behavior (and maybe this is what we actually want). Rather than giving each datasource time to respond, this chooses the first one to respond.