DataSource API revamp.

Conflicts:
	api/framework/datasource.md
DataSource event API revamp.