Add a test subscribing a system to a content view

Add a new test module: `tests.foreman.api.test_contentview_v2`. Add a test to
this module which does the following:

1. Create an organization, lifecycle environment and content view.
2. Publish the newly created content view.
3. Promote the newly published content view.
4. Create a system which references the organization, lifecycle environment and
   content view.

Make `ContentView.publish` raise an exception if an HTTP 4XX or 5XX response is
received. Otherwise, return a response with the JSON already decoded. Update
`tests/foreman/smoke/test_api_smoke.py` to deal with the change.

Addresses #691. Inspired by #1225, #1205, #1203 and #1197.
I think you want to use `.json()` here, no?  Perhaps update `promote` to be like `publish` and return `json` by default?

```python
response.raise_for_status()
return response.json()
``