Fix requirements-optional.txt

To generate a graph of entity dependencies, the graphviz python module is not
required. Instead, the user should have the normal graphviz program installed.
Update both the documentation and requirements file to reflect this fact.
Enable Sphinx's nitpicky mode

Make Sphinx warn about all references where the target cannot be found. Fix some
of those references, and make Sphinx ignore others (e.g. to the "str" target).
Merge pull request #985 from Ichimonji10/docs

fix requirements, enable nitpicky mode
Add more tests for module robottelo.api.client

Ensure that the functions in this module accept the same arguments as the
functions that they wrap.
Merge pull request #989 from Ichimonji10/client-tests

Add more tests for module robottelo.api.client
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