split DataSources.* and DataSource.*

This is a first commit in a series of commits in which I try to
unravel the inclusion mess, to (in the end) reduce the amount of
code required to compile components.

This first patch splits DataSource.* and DataSources.* to get
one file per class, thus making sure that code using data sources
do not need to include more than it should.