RepositorySet-API: Added the functionality to enable RedHat Repos.

Added `list_rhproducts` function to list all the RedHat Products
in a given Organization.

RH Products have varying Id's depending upon various other custom
products, hence we use the product name which is a static value
to fetch the RH Product's ID in `fetch_rhproduct_id` function.

RH Reposets too have varying ID's hence we use reposet name which
is a static value to fetch the RH Reposet's ID in `fetch_reposet_id`
functio.

Also RH Repositories first need to be enabled , so that they can be
synced.
`enable_repo` and `disable_repo` functions requires the
`reposet_id`, `basearch` and `releasever` to enable, disable the
repositories.

Updated the functions to use search and params.

The `fetch_rhproduct_id` now uses search to fetch the `prd_id`.
Also this function uses `escape_search` function while searching.

The `fetch_rhreposet_id` now specifies the name of
the reposet to fetch the `reposet_id` information.

Added functionality to fetch the repo_id and updated docstrings.

Added `fetch_repoid` function to fetch the RedHat repo_id.

Updated the docstrings for the `path` functions in `Organization`
and `Products` class.

Some minor fixes related to docstrings and sphinx.

Fixed many miscellaneous issues
Merge pull request #1416 from kbidarkar/repositoryset-support-api

RepositorySet-API: Added the functionality to enable RedHat Repos.
Kill window manager instead of trying to stop it

Fluxbox insists in not stop gracefully and the UI automation still
hanging. Because this, is better to send SIGKILL directly.
Port old API tests for repositories

Completely rewrite existing tests in module `test_repository_v2`. Make them more
terse, efficent and thorough. Drop module `test_repository`, as the "v2" module
now performs its responsibilities.
Port some old API tests for content views

Port all non-stubbed API tests for content views. Move those tests into either
`test_contentview_v2` or `test_contentviewversion_v2`.

Use FauxFactory to generate some random data instead of the orm fields.
Improve foreman task pooling

Checking for state is the better approach to verify if the task is
running or not. Also reduced the timeout because this improvement.
Fix product path to handle a None which

Add a check for which not being None before calling startswith.
Merge pull request #1438 from elyezer/api-task-pooling

Improve foreman task pooling
Merge pull request #1439 from elyezer/fix-product-path

Fix product path to handle a None which
Merge pull request #1436 from elyezer/wm-kill

Kill window manager instead of trying to stop it
Merge pull request #1427 from Ichimonji10/test-repository

Port old API tests for repositories
Merge pull request #1437 from Ichimonji10/test-contentview

Port some old API tests for content views
"Added test for partition-table - remove operating system"

"Added test for partition-table - remove operating system"

"Added test for partition-table - remove operating system"
Merge pull request #1431 from tkolhar/test_cli_second

Added test for partition-table
Updated test_multiple_paths for sam fencing
Merge pull request #1435 from sthirugn/fix_multiple_paths

Fenced test_multiple_paths for sam test
Drop custom error checking code

Drop custom error checking code from `EntityFactoryMixin.create`. Drop class
`factory.FactoryError` and reference `requests.exceptions.HTTPError` instead as
necessary. Update and simplify unit tests for the `factory` module.
Merge pull request #1441 from Ichimonji10/simplify-factory

Drop custom error checking code
Clean up method `skip_if_sam`

* Reword the docstring with nicer prose.
* Change variable names for the sake of clarity.
* Use a list comprehension instead of a map-and-lambda combo.

A list comprehension is used instead of a map-and-lambda combo because:

* List comprehensions are more common, and in my opinion more readable. When in
  Rome...
* There is anecdotal evidence that list comprehensions are preferred by the
  community at large. See the comments to PEP 279.
* Pylint complains about the usage of a map-and-lambda combo when a list
  comprehension suffices.
* Last and least, list comprehensions are more efficent.
(API) Fix up the "Architecture" entity

Override `Architecture.create` and `Architecture.read`. This makes it possible
to:

* Create an architecture that points to some number of operating systems.
* Read which operating systems an architecture points to.

Update the test suite to exercise these changes.