Content Views Rework: add ability to associate puppet modules with a content view

This commit contains several changes to support allowing a user to associate
puppet modules with a content view.  Note: this does not 'create' puppet
modules in Katello, it only associates existing modules with the view.

First, the v2 api has been updated for listing out the puppet modules in
a repository as well as for retrieving details on a puppet module. This is
to help the user in identifying and selecting modules.

Second, new v2 apis (model/schema...) have been added to allow the user
to add/remove/view/update puppet module associations with the content view.

When associating a puppet module with a content view, the user will have
2 options:

1. provide the UUID (aka pulp ID) when performing the add.  This will
   associate a specific puppet module (name/author/version) with the
   content view.

2. provide a puppet module name+author when performing the add.  This
   will indicate that the 'latest' version of this puppet module will
   be associated with the content view.
Merge pull request #3679 from bbuckingham/cv-rework-puppet

Content Views Rework: add ability to associate puppet modules with a content view