Start refactoring scenario runner

We should remove spaghetti from code and make it safer.

The current implementation has several issues:
1) If something went wrong (which can be the case) we won't cleanup the cloud completely;
2) There is a lot of spaghetti around catching exceptions and preparing the cloud;
3) There will be even more spaghetti when we try to extend current functionality
with (stress exectution/non admin users/another loads and cloud pre configuration);
4) We have a lot of IFs that switch what kind of exectuion we will use.
This should be done via classes and inheritance IMO.

This patch fixes some of the issues mentioned above:
1) Add Context class that allows to create/delete tmp users and tenants;
2) Add Context class that makes all cleanups. For users if they are present
and for admins if they are present;
3) Changed algorithm of deleting resources (try-catch) e.g. if 1 user
wasn't deleted => we should try to continue and delete others;
4) Add some todos;
5) Rewrite ScenarioRunner.run() method to use these context classes;
6) Rewrite UTs accordingly and also use the correct @mock.patch(...) syntax.

Implements: Blueprint scenario-runner-refactoring
Implements: Blueprint unit-tests-refactoring

Change-Id: I5c6c082ed30390bc000a2371f0dfca31994910cb