790064 Manifest import error handling

When a manifest import error occures on product repositories creation
we store this infromation and enable a user to recreate repositories
later. This is handy when a CDN server is not reacheable at the moment
of importing.

A new link is added to RedHat Repositories page which allows you to run
repository refresh action on demand. It also displays status based on
information stored at products of Red Hat. Status is updated only when
Katello runs import or repository refresh action.

When CDN content changes Katello has no information about it and status
still indicates OK state. However a cron which runs refresh periodically
solves this case.
Display how many products are marked as failed

Also show current status on top because it's probably more important
than the link with explanation.
Display also products without repositories

When a product has no repository we explicitely inform user that
there are no repositories available for a given product.
Refactoring of unreadeable methods

Split code into smaller methods, add some documentation and substitute
some common patterns with their ruby-like equivalent. Also add tests
for modified methods in SyncManagementHelper module