Problem: BaseDistribution.validate() is too Distribution specific
Solution: Move validate() to the Distribution instead
This patch allows classes that inherit from BaseDistribution to call super().validate(data) to get
the validation provided by the ModelSerializer.
This patch also removes base_path from BaseDistribution because it is defined on the Distribution.
DockerDistribution also defines it for itself.