Added Default org and loc selection support to users.

We now have support for `default_org` and `default_loc`,
selection under the org and loc tabs for the users.
Merge pull request #1629 from kbidarkar/user-default-org

Added Default org and loc selection support to users.
Test to check if the activation-key's content-host limit actually limits its usage
Merge pull request #1630 from sghai/ak-limit-test

Test to check if the activation-key's content-host limit actually limits its usage
Updated all instances of  katello-ca rpm version for client side
Merge pull request #1633 from sghai/fix-rpm-ver

Updated all instances of  katello-ca rpm version for client side
Added test - to check content host names are unique
Added clone function and test for cloning provisioning template.

Few docstrings updates.
Rewrite ContentViewTestCase

* Drop an unnecessary `@ddt` decorator.
* Make the test code more straightforward.

Rather magically, the test now succeeds.

    $ nosetests tests/foreman/api/test_contentview.py:ContentViewTestCase
    .
    ----------------------------------------------------------------------
    Ran 1 test in 19.436s

    OK

This fixes a Jenkins failure.
Merge pull request #1609 from tkolhar/test_cli

Added test - to check content host names are unique
Merge pull request #1634 from Ichimonji10/test-contentview

Rewrite ContentViewTestCase
Merge pull request #1632 from kbidarkar/clone-template

Added clone function and test for cloning provisioning template.
Added support to sync repos via the repository page.

This required tweaking the existing `assert_sync` function at,
ui/sync.py to sync repos via the repository pages.

Added tests to test all the repo types 'yum', 'puppet', 'docker'.
Merge pull request #1635 from kbidarkar/prd-sync-now

Added support to sync repos via the repository page.
Test to associate RH product to activation key
Updated create_cv function to support RH contents as well as custom contents
Refactor all UI tests setUp method

Remove unused setUp override.
Convert calls to UI factory to API factory.
Move super setUp call to the bottom to avoid leaving the browser open.
Because tearDown method will not run if setUp raises an exception and
the API factory could raise if server does not behave as expected.
Merge pull request #1636 from sghai/ak-test

Test to associate RH product to activation key
Fixed the way the tests are asserted.

Earlier I was testing with sync_status page, but now we are
asserting it via the product tasks tab.
Merge pull request #1638 from kbidarkar/prd-sync-now

Fixed the way the tests are asserted.
Add orm.EntityCreateMixin, drop factory module

The methods provided by this mixin work together to create an entity. A
typical tree of method calls looks like this:

    create
    └── create_json
        └── create_raw
            ├── create_missing
            └── create_payload

Only `create_raw` communicates with the server.

Drop module `robottelo.factory` and `tests.robottelo.test_factory`. As a result
of this change, the `Factory` and `EntityFactoryMixin` classes are gone. Several
other methods are also no longer available on inhering classes:

* attributes
* build
* _factory_data
* _factory_path

Rewrite significant amounts of code to deal with this change. Modules
`tests.foreman.api.test_multiple_paths` and `robottelo.entities` require the
most significant changes, but others are affected too.

Change the `Meta.api_names` attribute that exists on many classes in module
`robottelo.entities` from a tuple of tuples to a dict. This is more intuitive,
class `EntityReadMixin` is hardly affected, and class `EntityCreateMixin` is
much simpler.

Deprecated methods are not used:

    $ git grep 'attributes()\|build()\|_factory_path\|_factory_data'

The affected tests succeed:

    $ nosetests tests/foreman/api/test_{organization,system,multiple_paths}.py
    ...............................SSS.........................SS.S....SSS..S....SS...S...........S....S................................................S...........S....S........................................................SSSS.SSSSSS..S.SSSSSSS..SSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    ----------------------------------------------------------------------
    Ran 275 tests in 306.406s

    OK (SKIP=65)

This change has several positive effects:

* Class `EntityCreateMixin` is much easier to comprehend than class `Factory`
  and derived code. The latter is complicated enough that even the original
  author (hi!) has trouble understanding it at times. This means that the bus
  factor can increase.
* `EntityCreateMixin` is more capable than class `Factory` and derived code. For
  example:

  * `create_raw` allows access to the response objects received from the
    server, and therefore information like status codes and the response message
    as a byte stream. The latter is expecially useful when no JSON response can
    be decoded.
  * `create_payload` allows one to see exactly what will be submitted to the
    server. This is great for inspection purposes, and it also allows subclasses
    to easily manipulate the form of that data.

* Much test code which calls `client.post` can call `create_raw` instead, which
  is more compact.