Use a content-type of application/json

By default, use a content-type fo application/json whenever sending a request
via module `robottelo.api.client`. If the content-type of a message is
application/json, also encode the data in that message as json. If the user
explicitly sets the content-type of a message, do not override that setting.

Add tests to ensure this code is correct.
Refactor existing tests and docstrings.

Use the ddt module to slim down existing tests. Rewrite some docstrings to
improve intra-documentation links.
Update module docstring