Fixes #5986: Ensure tipsy error details populated on sync status page, BZ965230.

On the sync status page, if an error occurred during sync (e.g. using a URL
that doesn't point to a real repo) the tipsy with error details would not contain
the information until the page was reloaded.
Fixes #5860 - correctly error on validation failure

fixes #5860 - added test

fixes #5860 - really added test
Fixes #5968: Intercept candlepin request to get available releases

Intercept requests to GET /consumers/:id/available_releases and return
the system's available release versions as viewed by katello.

Added /api/available_releases to the root resource so that RHSM
can check to see if it is enabled on the server.

This API is only intended to be called by a registered consumer.
Fixes #5163/BZ848564 - ensure limited host groups have >= 1 hosts.
Fixes #6040, adding katello permissions to foreman "viewer" role.
refs #5892 - adding notifcation for custom_info update, BZ 970079
Fixes #6027 - Made product gpg update more secure

It is possible via api to associate gpg key belonging to a different
org to product.

This commit checks for gpg key readable + gpg key org association before
accepting the provided gpg key.
Fixes #6047: Prevent search grid from folding under row headers, BZ1083319.

For some browser zoom levels, the grid rows would tuck up under the
row headers. This reduces the width of the grid area allowing it to
stay in place.
Fixes #6049 - fixes issue with incorrect page titles, BZ 1099469
Merge pull request #4133 from thomasmckay/5860-actkey-validate

Fixes #5860 - correctly error on validation failure
Fixes #5992 and #5993 - qpid-cpp-server-store needs to be added to the repo
Merge pull request #4203 from waldenraines/5163

Fixes #5163/BZ848564 - ensure limited host groups have >= 1 hosts.
Merge pull request #4215 from jmontleon/add-qpid-cpp-store

Fixes #5992 and #5993 - qpid-cpp-server-store needs to be added to repo
Fixes #6050 - Better error message on filter rules create

Basically cli did this on filter rule create with no filter rule params
specified.

$ hammer  content-view filter rule create --content-view-id=4
--organization-id=1 --content-view-filter-id 1

Could not create the filter rule:
  Error: 400 Bad Request

This commit fixes that by giving more context on what needs to be
specified. This is slightly tricky because depending on errata or
package filters the "base" field requirement is bound to change. Here
are the 2 scenarios this fix now handles..
1) On a package filter specifying package rule it raises name cant be
blank.

$ hammer  content-view filter rule create --content-view-id=4
--organization-id=1 --content-view-filter-id 1

Could not create the filter rule:
  Validation failed: Name can't be blank

2) On an erratum filter specifying erratum rule it raises something else

$ hammer  content-view filter rule create --content-view-id=4
--organization-id=1 --content-view-filter-id 2
Could not create the filter rule:
  Validation failed: Invalid erratum filter rule specified, Must specify
at least one of the following: 'errata_id', 'start_date', 'end_date' or
'types'
fixes #5967 - initial updates to support default capsule

This commit contains several changes to support a 'default' capsule.
With each fortello installation, there will be a capsule installed.
That capsule will not provide pulp node functionality, since pulp
functionality is provided by the pulp server running on the fortello
server; however, it can provide other features such as puppet, dhcp...etc.

With these changes, the 'default' capsule will be automatically associated
with the following resources:
- all organizations configured on the fortello server
- the default location
- all lifecycle environments

In addition, it will not be allowed for a user to perform CLI commands
which would alter the 'default' capsule. For example, the following commands
would generate an error:
- capsule content add-lifecycle-environment
- capsule content remove-lifecycle-environment
- capsule content synchronize

That said, a user could still look to see details on the 'default'
capsule using the other supported CLI commands such as:
- capsule list
- capsule content info
- capsule content lifecycle-environments

With the above, this 'default' capsule can then be used to help
support things like:
- When a puppet environment is created as part of publishing
  or promoting a content view, associate that puppet environment
  with the appropriate locations.  This would be achieved by
  retrieving the list of locations that are associated with
  capsules that are currently syncing content for the
  target lifecycle environment.
Fixes #5911 - perms for system registration calls

Also handles env lockin/cv lockin for content view remove

Rules of the Game
To register a system one needs
1) create_content_hosts (under content hosts resource)
2) view_content_views
3) view_environments

Also cleaned out some old code.
Merge pull request #4179 from ehelms/fixes-5986

Fixes #5986: Ensure tipsy error details populated on sync status page, BZ965230.
Fixes #5765: Ensure repositories appear on content view details when searching, BZ1086187.

On the content view details page for repositories, if a user had searched
for the content view the search transferred to the search being done
by the repositories table.
Merge pull request #4181 from mstead/Fixes-5968-release-versions

Fixes #5968: Intercept candlepin request to get available releases
Merge pull request #4147 from parthaa/sys-registration

Fixes #5911 - Added permissions for content host registration calls