Refactor code for representing entities

In module `robottelo.orm`:

* Change `get_fields` to a class method. This allows the method to be used both
  on Entity classes and Entity instances.
* Add an inner class called `Meta`, which can be overridden. Child classes can
  insert metadata into this class.

In module `robottelo.entities`:

* Add a pylint directive to silence spurious warnings
* Add metadata to both of the existing entities: "Host" and "Model"

In both modules:

* Update docstrings.

This set of changes are prerequisites for the addition of factory classes.
Add module `robottelo.factories`

The new module contains factories which are intended for use when writing API
tests. Class `Factory` currently has one method of note working: `attributes`.
When called, this method returns attributes which can be used to create a new
Foreman object.
Write tests for module `robottelo.factories`
Include recently-created modules in API docs
Use factories in tests
Fix bug in module `robottelo.factories`

Add tests to ensure the bug is fixed.
Allow extra args in method `attributes`

Allow args to be passed in like this:

    SomeFactory().attributes(name='Alice')

Prevent extra args from being passed in, like this:

    SomeFactory().attributes(no_such_field='bad juju')
Use parentheses intead of line continuation symbol
Merge pull request #940 from Ichimonji10/factories

Factories