Cherry-pick the following commits from master:

* Extend exception messages.
  Closes-bug: #1264980
  Ia57821cd906a203b18546b9e93e38f3e1bc71025
* Remove extra methods of interaction with API:
  and use environment_get instead it.
  Closes-Bug: #1265165
  Ib49aecff4773773b6cf305d51db29a17bcf813f3
* Move most of code for dynamic UI form creation into metaclass.
  Implements: blueprint dynamic-ui-optimization
  I9b2617527b410abb7c60df978f9c00f7cef491d3
* Minor refactoring of dynamic_ui.
  Move more functions to dynamic_ui.helpers.
  Ib578a24159dda4de5fecf5df35ff71bc7d704215
* Rewrite dynamic_ui to store Services data per-session.
  Thus set of Services (and cleaned_data for them) for each
  user/tenant will be isolated supporting per-tenant isolation
  blueprint.
  Closes-bug: #1264289
  I3d0b46463470912cf6d7a36fddd84292689775da
* Update local_settings.py.example to stable/havana.
  If56e74338449eb14b6b8a581863502287e654517
* Hide "Upload UI file" btn in manage service table
  There is should be only one ui definition in service So need to show
  "Upload UI file" only ic case there is no any
  Closes-bug: #1263052
  Ibe8c74f20062cd213d8a53ff46d9db9d41a2e08d
* Support per-tenant isolation for service metadata files.
  Partially implements: blueprint per-tenant-isolation
  I7393e748216ddaa59d6e90249b263514d08f9d34
* Added empty line in KeyPair fields.
  Implements: blueprint rewrite-key-pair-for-linux-based-services
  If7dcf19084422c76d3bd1b075e4d5080254d003b

Change-Id: I10b920a3b7cdd9b9a19d37243be81f6aa6aafa9b
Merge "Cherry-pick the following commits from master:" into release-0.4