role delete: check for r/o role and role in a group in model

The following (existing) statement in MiqUserRole class:

    has_many :miq_groups, :dependent => :restrict

will prevent from deleting a role in a group, the 'before_destroy'
statement is to prevent a read only role from being deleted.

Therefore, there's no need to be checking for read only role
and a role in a group in the controller code.

https://bugzilla.redhat.com/show_bug.cgi?id=1126536
group delete: check for a r/o group and group used by users in a model

This fix is:
* to make sure during group removal, the check for a read-only group,
as well as a group still in use by user(s) is being made in the model,
rather than the controller.
* to simplify the (controller) code

https://bugzilla.redhat.com/show_bug.cgi?id=1126536
Added QueryCounter helper class for specs.
Snapshot creation disabled for Templates

Implemented the supports_snapshots? method

https://bugzilla.redhat.com/show_bug.cgi?id=1005285
Add upload_import_file and review_import actions to MiqAeToolsController
Add granular automate import functionality
Add modeling for template many-to-many tenant

In OpenStack, an image (TemplateOpenstack) can exist in more than one project
(CloudTenantOpenstack).  These migration and model changes allow an OpenStack
template to list the tenants it can be used in, and allows a Cloud Tenant to
list the templates associated with it.

The table is named "cloud_tenants_vms" to reflect the physical tables used in
for the join.

Despite the table name referring to the generic objects, the relationship is
purposefully restricted to Openstack templates and Openstack cloud tenants in
the association defined in the models.  This keeps the notion of the
many-to-many relationship restricted to the most specific level.

The relationship methods are named:

* TemplateOpenstack#cloud_tenants
* CloudTenantOpenstack#opentack_templates

Additionally, to facilitate keeping the relationship as specific as possible,
CloudTenant is now sublassed to CloudTenantOpenstack.  Since all of the existing
cloud tenants are only openstack tenants, the migration initializes all of the
CloudTenant records to have a type of CloudTenantOpenstack.
Support non-admin ems refresh users - OpenstackHandle

OpenStack handle changes required to support ems refresh
using non-admin credentials.
Support non-admin ems refresh users - openstack parser

Openstack parser changes required to support ems refresh
using non-admin credentials.
Support non-admin ems refresh users - test

Test changes required to support ems refresh
using non-admin credentials.
Updates based on code review comments.
Treat date "from"/operator filters as dates, not times

Without this, the existing tests fail when run on a system that's east
of Greenwich.
Added new columns in the Services List

The following new columns were added to the Services List

- Total VMs
- Total CPUs
- Total Memory
- Total VM Disk Count
- Total VM Disk Space Allocated
- Total VM Disk Space Used
- Total VM Memory on Disk

https://bugzilla.redhat.com/show_bug.cgi?id=1115763
Reset flash_array when viewing screen off off vm summary screen.

Reset flash_array so flash message is not displayed when clicking on links such as Snapshots/Genealogy/Container/Operating System etc from summary screen after perfomring some actions like "Edit Tags".

https://bugzilla.redhat.com/show_bug.cgi?id=1146249
https://bugzilla.redhat.com/show_bug.cgi?id=1102658
simplify copy_hash / copy_array

the second parameter for copy_hash was only used in one place, so
isolate it there.  The second parameter for copy_array was never used,
so delete it.
Convert schedule_form partials to haml
Host view rewritten to haml
Use localized product name in appliance console

https://bugzilla.redhat.com/show_bug.cgi?id=1045615
Force a binary string literal as binary for ruby 2.0+.

See #218 #465 #589

Ruby 2.0 reads Strings in ruby scripts by default as UTF-8 unless you specify a magic comment #coding or force the encoding.

Binary string literals, if they can't be converted to UTF-8, will not be equivalent to their binary string counterparts:

```
"\222dL\256".force_encoding("ASCII-8BIT") == "\222dL\256".force_encoding("UTF-8")
=> false
```

Whereas, compatible conversions will be equivalent:

```
"\001\002".force_encoding("ASCII-8BIT") == "\001\002".force_encoding("UTF-8")
=> true
```
Add support for Openstack SSL

Allow connections to Openstack to use SSL.

https://bugzilla.redhat.com/show_bug.cgi?id=1089727
https://bugzilla.redhat.com/show_bug.cgi?id=1140693