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 #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 #6040, adding katello permissions to foreman "viewer" role.
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 #6049 - fixes issue with incorrect page titles, BZ 1099469
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
Fixes #5027: Ensure errata filter notification on add/remove, BZ1079245.
fixes #5743/BZ1097124 - content host - host collections bulk action "loading" fix

This small commit fixes an issue where the content host bulk
actions page for host collections would result in invalid requests
sent to the server, causing it to remain in a 'Loading' state.

The issue was due to a name conflict in the url (host-collections)
used by both the single content host as well as bulk actions.
fixes #6064 - fixes content view filter not honoring the name parameter, BZ 1102451
Merge pull request #4217 from bbuckingham/issue-5743

fixes #5743/BZ1097124 - content host - host collections bulk action "loading" fix
Merge pull request #4182 from ehelms/fixes-5027

Fixes #5027: Ensure errata filter notification on add/remove, BZ1079245.
Merge pull request #4185 from ehelms/fixes-5765

Fixes #5765: Ensure repositories appear on content view details when sea...
Merge pull request #4205 from waldenraines/6040

Fixes #6040, adding katello permissions to foreman "viewer" role.
Merge pull request #4210 from cfouant/titles

Fixes #6049 - fixes issue with incorrect page titles, BZ 1099469