Merge pull request #3787 from waldenraines/cv-rework

CV-rework: fix spacing on bastion content view routes.
Delete puppet module index during katello:reset
Content Views Rework: fix api docs for content view puppet modules
Content View Rework: updates to support publish and promote for puppet content

This commit contains the changes to support publishing
and promoting content views that contain puppet content.

One key change being introduced is the 'ContentViewPuppetEnvironment',
which represents the published content. When one is created,
a pulp puppet repository is created.  It was split out to be
a separate model as it cannot be associated with a product
(since the source of the content could be multiple repositories);
however, it does share the glue/pulp/repo.rb that is used by the
Repository model.
Merge pull request #3790 from bbuckingham/cv-rework-puppet

Content View Rework: updates to support publish and promote for puppet content
Merge pull request #3798 from bbuckingham/cv-rework-apidoc

Content Views Rework: fix api docs for content view puppet modules
Merge pull request #3797 from bbuckingham/cv-rework-fix-reindex

Delete puppet module index during katello:reset
Content View Rework: update content view puppet modules to always include name/author

A content view puppet module may consist of:
- name
- author
- uuid (optional)

With this change:
- name + author => indicates to apply the latest version of the module
  during content view publish
- uuid + name + author => indicates to apply the specific version
  associated with the uuid to the content view during publish

From a user point of view, this means the user can simply:
- on create or update, provide name+author or uuid

If the user provides uuid, the application will look up the puppet
module in pulp and assign the name + author (i.e. the user doesn't need
to provide it).
Merge pull request #3801 from bbuckingham/cv-rework-puppet

Content View Rework: update content view puppet modules to always include name/author
Expanding Content Vew available puppet module apis

* adding available_puppet_module_names
* adding name as a param to available_puppet_modules
Content Views: allow CRUD operations on puppet modules.