Create and test robottelo.orm.EntityDeleteMixin

Create a mixin class which provides inheriting classes with a `delete` method.
Under normal circumstances, this method returns either `None` or a foreman task
ID. Add tests for this class.
Make entities and tests use orm.EntityDeleteMixin

Insert `orm.EntityDeleteMixin` into the class hierarchy of several entity
classes. (e.g. Organization and Architecture) Update the following modules to
use the new `delete` method:

* `tests/foreman/api/test_multiple_paths.py`
* `tests/foreman/api/test_role_v2.py`
* `tests/foreman/api/test_system_v2.py`
Make EntityDeleteMixin.delete synchronous

When an entity is deleted, an HTTP 202 response may be generated, indicating
that a task for that action has been created. Make `EntityDeleteMixin.delete`
look for an HTTP 202 response and, if one is received, wait for the task to
complete.

As part of this refactoring, create a helper function which polls the server,
and make both `orm.EntityDeleteMixin` and `entities.ForemanTask` use this helper
function.
Merge pull request #1239 from Ichimonji10/entity-delete-mixin

Create, test and use EntityDeleteMixin