selective content export api

test plan:
* test the undocumented content_list api endpoint:

 api/v1/courses/:course_id/content_list

which returns the same content list that would be shown by the
selective_content endpoint of a pending course copy content migration

with no 'type' parameter, it should return a list of
exportable categories and urls for each expandable type

with a type parameter (e.g. content_list?type=context_modules), it
should send a list of items with their titles and ids (asset strings)

these ids can be used to select the content for the export

* use the content_exports_api create endpoint to create a
 common_cartridge export, but add an additional argument,
 "select" (equivalent to the "copy" parameters for
 the content_migration api)

e.g. api/v1/courses/:course_id/content_exports?
 select[all_wiki_pages]=1&
 select[context_modules][context_module_42]=1
(replacing :course_id and :module_id)

* also try using arrays of ids as a parameter

e.g. api/v1/courses/:course_id/content_exports?
 select[context_modules][]=42&
 select[context_modules][]=43

 this should create a package that only contains the
 specified content, and any course files referenced in
 html content (confirm by re-importing)

closes #CNVS-13502

Change-Id: I5bdcdc8255b30c5f78585dc335d25eb19bd5a7c0
Reviewed-on: https://gerrit.instructure.com/36655
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>