Allow string entity names, improve OneToManyField

Allow one entity to reference another using a string name. For example, an
entity can now contain this:

    operatingsystems = orm.OneToManyField('OperatingSystem', null=True)

Or an entity could contain this:

    organization = orm.OneToOneField('Organization', required=True)

And these string-based references now work correctly. Currently, these
string-based references only work if the named entity exists in module
`robottelo.entities`. However, the underlying method which implements
string-based references is written such that it is fairly trivial to allow
references to entities in absolutely any module.

Also, add method `get_value` to `OneToManyField`s, and update
`EntityFactoryMixin` to handle the values returned by
`OneToManyField.get_value`. This allows recursive `create()` calls to succeed
when one-to-many references are encountered.
Add API tests for path "architectures"

Add simple tests for `/architectures` and `/architectures/:id`. Again, simply
check whether it is possible to get the relevant page, create an entity, read
that entity after creation and delete it.

Turn class `robottelo.entities.Architecture` into a factory.
Rename argument/field "model" to "entity"

Do this for class `robottelo.orm.OneToManyField`. This change allows the
terminology used in this application to be more focused and correct.
Merge pull request #970 from Ichimonji10/tests

Write more tests, update OneToManyField