Refactor test code

Several unit tests override or modify a variety of objects, typically for
mocking purposes. Back up several of those objects before they are overridden or
modified, then restore those objects to their existing state after the relevant
test has finished. This prevents the test code in one location from affecting
the state of test code in other locations.

Remove function `robottelo.factory._call_client_post`. This wrapper is
unnecessary, as it wraps `robottelo.api.client.post`, which is also in the
codebase. Test code can just as easily override one as the the other, and having
less code lying around means less of a maintenance burdern.

Add several pylint directives.
Merge pull request #990 from Ichimonji10/refactor-tests

Refactor test code
Make better error messages

Call a function that builds an error message whenever any tests fails in module
tests.foreman.api.test_multiple_paths fails. This allows the testing code itself
to be more concise and for error messages to be more consistent.
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.