deposit: data source concept

* Separates data sources as a plugable objects
  for deposit import.

Signed-off-by: Kamil Neczaj <kamil.neczaj@cern.ch>