Force ASCII-8BIT since the default encoding for scripts is UTF-8 in 2.0.

See https://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/
Upgrade binary_struct to 2.0
Implement internal state machine with no transaction required

https://bugzilla.redhat.com/show_bug.cgi?id=1089061
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
Prevent blank Storage Manger names.

It currently allows to pass a nil name of the storage manager, effectively making the 'show' view not-working because of trying to use `+' method on nil. This commit rectifies this issue by enabling name presence check in the model.

https://bugzilla.redhat.com/show_bug.cgi?id=1129718
Create ApplicationController::Filter#process_datetime_selector

Code deduplication (DRY)
Create ApplicationController::Filter#process_datetime_selector

Simplified character extraction from a string.
Create ApplicationController::Filter#process_datetime_selector

Explicitly declare this new method as private.
Create ApplicationController::Filter#process_datetime_selector

Simplified boolean logic around time_suffix computation.
Create ApplicationController::Filter#process_datetime_selector

Use new variable exp in place of @edit[@expkey]
Create ApplicationController::Filter#process_datetime_selector

Computed exp_value_key and defaulted exp_key to nil.
Create ApplicationController::Filter#process_datetime_selector

Compute value_key, instead of passing it as parameter.
Simplified ApplicationController::Filter#process_datetime_selector method
Handle AR exceptions when a new Catalog item is created

A call to create_request might lead to AR exceptions in the model that
need to be rescued and passed on to the controller.

https://bugzilla.redhat.com/show_bug.cgi?id=1095457
Created a provision request cancel message to replace the generic "Add a new ____ cancelled by the user" message used by the prov_edit method in miq_request_methods.rb

New provision cancel message will be displayed after the cancellation of a host provision or vm provision.

https://bugzilla.redhat.com/show_bug.cgi?id=1114143
Fix error display w/o session.

Fix display of errors w/o a valid session by:
  * wrapping @css[:background_color] into css_background_color,
  * adding rescue to role_allows.
Fix: session[:last_trans_time] was not set.

session[:last_trans_time] is not set in the login request but later.
We need to anticipate this in the PrivilegeCheckerService.
Add tests for referer checking on requests.
Refactor and cleanup validate_user in DashboardController.