Make `Factory.create` exception messages better

Ensure that when `Factory.create` raises a `FactoryError` exception, the path
being POSTed to is included in the error message.
Use DDT module to slim down test suite.

Creat module `tests.foreman.api.test_multiple_paths`. This module contains
common tests that should be performed over and over again for a variety of URLs.
Move many of the tests from
`tests.foreman.api.test_{architecture,host,model,operatingsystem,organization}_v2`
into this module.
location tests UI: Added remove entity testcases
location tests: Fix for travis
Implement method Factory.build()

New method creates all of a factory's dependencies, recursively, then generates
attributes for the current object. Update tests in module
`tests.robottelo.test_factory`.

Use new method to move more tests into module
`tests.foreman.api.test_multiple_paths`. Delete old, empty test modules.
Add HTTP PUT tests

Add tests that issue HTTP PUT requests to several URLs.
Fix `make graph-entiites` command

A recent PR more fully implemented `OneToManyField`s. This is good. However,
that PR also broke the graph-entities script. This commit inserts some
type-checking into `scripts.graph-entities`, thus fixing the breakage which
occurred when `OneToManyField`s were improved.

Also:

* Create an `Errata` entity. The entity is read-only.
* Visually distinguish between entities which are factories and entities which
  are not. This makes it easier to determine how much progress has been made in
  creating factories.
Replaced assertISNotNone for assertTrue as the check here is object is not None rather than a boolean value
Merge pull request #975 from Ichimonji10/shrink-tests

Shrink test code, implement Factory.build()
Merge pull request #976 from Ichimonji10/graph-entities

Fix `make graph-entities` command
Merge pull request #974 from kbidarkar/location-tests3

Location tests3
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).
Implemented CV tests
Merge pull request #985 from Ichimonji10/docs

fix requirements, enable nitpicky mode
Automated: test_cv_associate_composite_dupe_repos_negative
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