Make discovery of version for KS catalog smarter.

Instead of relying on the configuration file for determining how
the catalog should be parsed, make it flexible by inspecting the
structure of the service catalog passed to it.

Fixes bug 1180486

Change-Id: I0c8caf4c8365bf25377ab3a249ac280d8add0f17
Shows a warning message when deleting a container that contains data.

We cannot delete objects in the container since there may be millions
of objects in that. The batch deletion should be done in swift instead
of Horizon. The batch remove of objects function is only in swift CLI
command now. This commit replace the unclear message with a warning
message that tells the user the container is not empy.

Related bug: https://bugs.launchpad.net/horizon/+bug/1034890

Fixes bug: #1096084

Change-Id: I59b46a3535b8654734c3dae4eec916ab1b53c716
Refactored the templates code

Created generic template _workflow_base.html
in horizon/templates/horizon/common folder
with 'workflow.name' to replace multiple nearly
identical templates with different titles.

Implements blueprint dry-templates

Change-Id: Ieb14e263381020ed6604149ff9295f8cc814a9e6
Always return a list from VolumeTableMixIn._get*

Returning None from these methods leads to TypeError
(None is not iterable)

Fixes: bug #1182075
Change-Id: Ia5f5fe78669bbaed599b7dd5cae1beb69bde7796
parse_isotime filter to parse a date string.

This then allows the resulting date value to be piped
to one of the standard django date/time format filters

This is identical to oslo timeutils parse_isotime, but annotated with
@register.filter

Required for blueprint: heat-ui

Change-Id: Ibecca77d50bb5c0df59e07e9572069215229f60a
Merge "parse_isotime filter to parse a date string."
Merge "Make discovery of version for KS catalog smarter."
Merge "Always return a list from VolumeTableMixIn._get*"
Merge "Refactored the templates code"
Merge "Shows a warning message when deleting a container that contains data."