Refactor the way benchmark engine returns its results

This patch adds the 'idle_time' parameter to all dictionaries that the
benchmark engine may return as its result in different places of code
(so that the output format is always the same). Here we also remove
several redundant except clauses which are not likely to be ever entered
and also slightly refactor the _run_scenario_loop method to avoid code
duplicate.

Blueprint benchmark-engine-refactoring

Change-Id: I15d5dd8e1d2035174cbc0c13a5558a7c6ffce300