811556 - Displaced 'save' button while editing the changeset description under "changeset history" tab
842569 - system groups - fix for TypeError on status of errata install

This commit addresses the "TypeError" that would occur when a user
when a user would view the status of an errata install on a system
group where a subset of the systems needed an update.

The cause of the issue was in the format of the response from
pulp.  Typically, if there is a change needed to a system, pulp
returns a hash dictionary with details on the changes to
the system; however, if no change is needed on the system,
pulp returns an array.  The TypeError was due to the fact that
katello expected the hash vs the array.  Based on discussion with
pulp devs, it has been stated that if we receive an array in the
status, we can treat that as "no changes have been made to the
system".

As part of making this change, ran several tests using:
system group - errata install, pkg install/update/remove
system - errata install, pkg isntall/update/remove, pkg group install/remove
794901 - correcting URLs in install manifests
cli tests - removing excessive logging
katello - add bundler patch to prefer rpm-gems
841857 - fixing LDAP logins in katello mode
Added permissions for content delete
843462 - system group search indexing should not include pulp content

Bugzilla 843462 raises an issue where a system (consumer) that is
a member of a system group, is not properly unregistered using
subscription-manager.  When attempting to do so, the user would
see something like "Invalid credentials" returned; however, the
system was partially unregistered on the server (e.g. system record gone).

The reason for this was that Katello was attempting to index
content in pulp for the system group.  The basic flow was:
- delete the system
- update the system group indexes (including info from pulp).
The problem with this was that the request to pulp was sent
after the consumer/system was destroyed; therefore, the authorization
credentials were invalid.

Since there really is no need to index the content in pulp
for the system groups, this commit updates the system group
model to only include the information we need/want.
Added some unit to test the perm fixes
Merge pull request #518 from bbuckingham/fork-842569

842569 - system groups - fix for TypeError on status of errata install
Merge pull request #536 from bbuckingham/fork-843462

843462 - system group search indexing should not include pulp content
847115 - Extend scroll bug on content tab, with > 50 subscriptions only the first 50 will populate.
mark _() as built-in

_() is created by gettext.install() and pylint could not detect it and print:
Undefined variable '_'
katello - disable bundler patch by default, fix broken condition

add missing license
Merge pull request #541 from xsuchy/pull-req-gettext

mark _() as built-in
Merge pull request #540 from Pajk/847115

847115 - Extend scroll bug on content tab, with > 50 subscriptions only ...
Merge pull request #537 from parthaa/content-deletion-perms

Content deletion perms
847858 - only remove act keys when resource not found error
Merge pull request #542 from thomasmckay/847858-actkeypool

847858 - only remove act keys when resource not found error
841289 - perform cleanup on failed registration with activation key

When a client/system/consumer registers with katello, the
creation of the system in katello is handled using a single db
transaction.  In supporting this, it will assign the system
to the activation key, environment, subscriptions, system groups...etc.
In addition, it will create the appropriate records in pulp,
candlepin and elasticsearch.

If an error occurs when creating the katello records (e.g.
system group max members validation error), a DB rollback will
be performed on the transaction.  While this cleans up the
katello DB, it does not affect pulp, candlepin and elasticsearch.

This commit is to addresses that by introducing the after_rollback
callback on the system, candlepin consumer and pulp consumer,
performing the appropriate cleanup in each handler.