Improve ForemanTask.poll

Exceptions raised on other threads are not caught by the current thread.
Make the timer thread raise a KeyboardInterrupt on the main thread when
the polling timeout expires, then catch the exception and raise a
TaskTimeout exception instead.

Also polls for the task result of success or error instead of the
pending state that still pending even if the task have failed with an
error.
Merge pull request #1404 from elyezer/improve-foreman-task-polling

Improve ForemanTask.poll
Add API tests for subnets

Make it possible to create, read and delete subnets using the `Subnet` class in
module `robottelo.entities`. Do this by adding several mixins to that class.
Verify that it is possible to create, read, update and delete subnets by adding
them to module `test_multiple_paths`.

Remove module `test_subnet`. It contains nothing but test stubs.
Merge pull request #1395 from Ichimonji10/test-subnet

Add API tests for subnets
Convert old API tests for users

Delete module `test_users`. Rewrite module `test_user_v2`, and drop in a test
that thoroughly tests whether it is possible to create and delete a user with a
variety of attributes.

Update the definition of the `User` class. Set some better limits on how long
the fields `firstname`, `lastname` and `login` can be.
Merge pull request #1403 from Ichimonji10/test-user

Convert old API tests for users