843529 - system group tasks - handling when systems are removed

This commit contains changes to address the first observation raised
in comment #3 of the bug.  Ref:

"Now it does not show Error, but it shows empty list of events.
Like if there were 3 history items, it shows "Viewing 3 of 3
results" in the bottom of the page. And shows list of 3 items
but with empty data, event and date field values are empty."

The issue raised is that while the tasks are deleted, the job
still exists.  This commit will delete the job, once the last
task has been deleted.
843529 - system group tasks - better way for handling nil job

This commit reverts the change made on a previous commit that
looked for job.nil? in the _show.html.haml.  It would be better
to do this check outside of the haml rendering.
843529 - fix spec test on system group events
fixed an issue when it was impossible to remove a repository that had no promoted content
object labels - by default, assign label by 'labelizing' the object name

This is an initial commit to facilitate assigning the label when
a user creates a new object (org/env/product/repo) in the UI.  The
default assignment will be by running the model_utils::labelize
on the object name.  This will change in the future to use
punycode (or alternative); however, the UI behavior will remain
regardless of algorithm use to derive the label.

The following is the general UI behavior:
1. user clicks the appropriate link to open a new object form (e.g. org)
2. the label input and save button are disabled
3. user clicks on 'name', enters a value and leaves the input box
4. browser initiates an ajax request to server to request a default
   value for the label
5. once received, browser sets the label, enables it and enables
   the save button

If desired, the user may edit the name.  Doing so, will disable
the label input, save button and repeat 3-5.

If the user doesn't like the default label, they may change it,
so long as it follows the 'validation' requirements.
object labels - update ui for setting label values based upon server query

This commit adds some additional logic to the UI for handling the
setting of object.label based on a server query.  They changes are
primarily to improve the behavior for the user.  E.g.

- when user enters name, put spinner on the 'label' so user can see
  something is happening
- after user enters the name, if they click the name and leave,
  don't prompt the server for a new label... only do that if the
  name is changing
- additional error handling...etc
object labels - moving the default_label action to the application controller
Merge remote-tracking branch 'upstream/master' into fork-set_labels
843529 - minor update per pull request comment - use if/else vs unless
Merge pull request #713 from bbuckingham/fork-set_labels

object labels - by default, assign label by 'labelizing' the object name
Fixed the labelize call to deal with i18n characters

Basically labelize will now generate UUIDs if i18n characters
are provided in the name and no label is provided.

Also updated the environment, product and repo models
to automatically generate labels via labelize call
if they are not provided
Update the env, prod migrations to use labelize
857499 - Fix for user with no orgs or perms.
Merge pull request #715 from parthaa/labelizeV2

Labelize
858011 - pylint fixes
Merge pull request #717 from mccun934/858011-object-labels

858011 - pylint fixes
Merge pull request #685 from bbuckingham/fork-843529

843529 - system group tasks - handling when systems are removed
829437 - fix error notification in GPG file upload form
Merge pull request #716 from knowncitizen/857499

857499 - Fix for user with no orgs or perms.
Merge pull request #724 from Katello/set-object-labels

object labels - auto-setting label during creation, migration updates..etc