feat: redesigned IDistribution interface and Distribution classes, refacored ScenarioParser
Each distribution now has DistributionOpts optional parameter, that contains optional parameters, that can be used by various distribution in future. Inside disributions method we need to check parameters we passed as parameter and implement logic.