Check if required services are available before starting the scenario

In this patch:
   * validation function benchmark.validation.required_services()
   * a piece of refactoring in scenarios.base and runners.base modules
   * new decorator benchmark.validation.validator(),
     which transforms validation function into scenario validator
   * constants for OpenStack services names and types
   * refactoring in rally.osclients
   * method osclients.Clients.services() to obtain available services
   * services validation is added to scenarios

blueprint check-service-availability-before-start-scenario

Change-Id: Id6126efb1bda73dd9ff92346ddf690329765f43f
Merge "Check if required services are available before starting the scenario"