(API) Port old tests for hosts

Significantly update the definition of class `Host`: modify fields and override
the `build` method to properly create dependent entities. Enable CRUD tests for
hosts in module `test_multiple_paths`. Drop old CRUD tests for hosts.

Slightly clean up module `test_host_v2`.

Fix #1446.
Merge pull request #1477 from Ichimonji10/test-host

(API) Port old tests for hosts
Fix CLI errors

Fix gen_alphanumeric call on cli.facory module
Make strings unicode when formatting with unicode arguments
Merge pull request #1484 from elyezer/fix-cli-tests

Fix CLI errors
Move lint.py into scripts dir, expand makefile

Move `lint.py` into the `scripts` directory, for obvious reasons. Add a makefile
target named "lint".
Merge pull request #1485 from Ichimonji10/scripts

Move lint.py into scripts dir, expand makefile
Fix make_domain CLI factory

Domain names need to be lowercase otherwise it will fails the host
creation.
Merge pull request #1486 from elyezer/fix-domain-cli-factory

Fix make_domain CLI factory
Make API and CLI generate similar domains

As per #1486, it is possible to create a domain that consists of lowercase
alphanumeric characters. Make the API match the CLI's behaviour in this regard.
Merge pull request #1487 from Ichimonji10/domain-entity

Make API and CLI generate similar domains
Avoid 404 on faster machines and connections

Add a retry with 1 second sleep before it when get a 404 on reading an
entity. Some API tests are failing due to 404, but when accessing the
URL the entity is returned without any problems. This was not possible
to reproduce locally, had to run on the Jenkins slave which is faster
and have a faster connection to the Satellite server.
Merge pull request #1489 from elyezer/entity-read-retry

Avoid 404 on faster machines and connections
Clean up some tests in module test_role_v2

The only non-stubbed tests that use the old API tools are in module
`test_permission`. Those tests interact heavily with the `/roles` API URL, and
they will likely be ported to module `test_role_v2`. In preparation for this,
clean up module `test_role_v2`.
Merge pull request #1488 from Ichimonji10/test-role

Clean up some tests in module test_role_v2
Give more time to things happen

Increase task polling timeout to 3 minutes
Increase sleep time to 3 seconds if a 404 is found when reading an
entity
Merge pull request #1491 from elyezer/timeout-increase

Give more time to things happen
Finish cleaning up module test_role_v2

Some tests in module `test_role_v2` are focused on filters, not roles. Create a
new module, `test_filter_v2`, and move those tests into the new module.
Significantly clean up the moved tests.
Merge pull request #1490 from Ichimonji10/cleanup

Finish cleaning up module test_role_v2
Port API tests in module test_permission

Subsume module `test_permission` into module `test_permission_v2`. Make the
relevant tests use the new API testing tools, not the old API testing tools.

Fix #1447.
Merge pull request #1492 from Ichimonji10/drop-test-permissions

Port API tests in module test_permission