Adding cluster_template and cluster panels for Sahara

The cluster_template and cluster panels give the ability
to define and launch a hadoop cluster (made from
nodegroup_templates).  They are in the same commit because
some of the functionality of cluster_templates requires
that the cluster panel also exist.
This code was originally from:
https://github.com/openstack/sahara-dashboard

Change-Id: I85534b0dd97ce5def5f3a447d68c6aa206964f0a
Partial-Implements: blueprint merge-sahara-dashboard
Co-Authored-By: Nikita Konovalov <nkonovalov@mirantis.com>
Co-Authored-By: Dmitry Mescheryakov <dmescheryakov@mirantis.com>
Tolerate service catalog and endpoint connection errors

This is a fix for the issues encountered when a service is not
configured or a service endpoint is not reachable. This fix
will add tolerance for these errors so that an error message is
displayed but the dashboard page will still load, not an error page.
This makes it easier for the user to recover by allowing them to
go to a different page, select a different region, or logout. This
makes sense in many cases such as when a region only contains an
image service endpoint, or when a single endpoint is not reachable
for whatever reason.

It also adds permissions to the panels that require compute or
image services so that the dashboard will not display them if
the service is not configured.

To test these changes you will need to set up your keystone service
catalog so that not all services are available in all regions, or
some of the service endpoints are not reachable.

Change-Id: Ie04699d1fb1d4db13a7f4dcf1bdfd23bf21aab80
Closes-Bug: 1323811
Closes-Bug: 1207636
Merge "Tolerate service catalog and endpoint connection errors"
Merge "Adding cluster_template and cluster panels for Sahara"