Add ability to graph entity relationships

Add a script at `scripts/graph_entities.py`. This standalone script inspects the
relationships between the entities in module `robottelo.entities` and outputs
relationshp information to stdout in DOT format.

Add command `graph-entities` to the make file. The command executes the new
script, pipes into graphviz and generates an SVG image, all in one go. Make git
ignore the image generated.

Add "graphviz" to `requirements-optional.txt`.
Mark required entity relationships in red
Reformat code
Clean up code using module `inspect`

The script now contains fewer lines of code and does not access __name__ class
members.
Merge pull request #962 from Ichimonji10/graph-entities

Add ability to graph entitiy relationships
Update docstrings
Update entity OperatingSystem

Update fields on entity OperatingSystem to reflect what the API expects. Add
comments that detail the reasoning for interesting changes.

Update IntegerField to accept optional minimum and maximum values. Add tests to
exercise the new code. This has been done to enable the necessary changes to the
OperatingSystem entity.
Add several tests for path /operatingsystems

The assertion in method `OperatingsystemsIdTestCase.test_post` fails when the
tests are run. This appears to be a bug, and a bug report should be filed.
Reduce the default max length of StringField

This is not done so as to be easier on the Foreman server. Rather, this is done
to make it easier to read through debugging output.
Add decorator skip_if_bz_bug_open to failing test
Make docstrings more meaningful