datasource: Refactoring datasources

To help alleviate naming collisions, move each of the datasources into their own package. In the near future, we are going to add support for new metadata services so make a distinction between the metadata service types. This will deprecate `--from-metadata-service` in favor of `--from-<type>-metadata=<address>`.
why is this exported?