More factories!

Significantly update docstrings in module `robottelo.factories`. It should now be possible for a user to read through the documentation in that module and leave with a decent understanding of what the code does and how to use it.

Add a unit test to ensure that a `ValueError` exception is raised if `Factory` doesn't know how to populate a given field, and it is not given an explicit value for that field. Make `Factory` capable of populating a greater variety of fields.

Allow `Factory` subclasses to provide default values for fields.
Better to use `self.assertGreater`