Base HTML templates and improvements for task report

This patch adds UI templates directory and utils,
which serve and unify HTML generation.

Also, there are some fixes and improvements for HTML task report.

In this patch:
  * Base mako templates (package rally.ui)
  * Rework tests/ci/rally-gate templates
    in order to use base template with generic header and styles
  * Show scenario errors (if any) in task report tab
  * Show scenario output (if any) in task report tab
  * Show SLA data in Overview tab
  * Show total scenario duration value (after the scenario name, above tabs)
  * If got some iteration error, save exception class name in the database
    instead of its repr()
  * Prevent layout from breaking and show proper message if JS libs
    can not be loaded for some reason
  * Fix bug 1387661 - the cause of the bug is wrong input json data,
    generated by plot.py. This happens when some atomic actions data
    missed (which is a result of scenario errors) - and we have different
    atomic actions sets between iterations. The fix saves atomic actions
    integrity by adding missed atomic actions (with 0 value).
  * Fix: if unexistend task uuid is specified in `task report' command,
    then proper exception is raised

Closes-Bug: 1387661

Change-Id: I4bcbf86e6fad844e6752306eb6c1ccfefa6c6909
Merge "Base HTML templates and improvements for task report"