Added a function `enable_rhrepo_and_fetch_repoid` and few fixes.

Added `enable_rhrepo_and_fetch_repoid` function, to group many
steps required for syncing RedHat Repos.

The `sync` function under `Repository` Class now returns a task_id.

Added and Fixed many docstrings.

Updated the import related to cloning manifests.

Added test related to syncing RedHat Repository

Few fixes after Repository.sync returns task_id
Switch this code around to this form:

```python
if task_result != 'success':
    raise APIResponseError(...)
return Repository.fetch_repoid(...)
```

The idea is that any number of checks can be listed one after another, [the code stays flatter], and there's fewer if/else keywords to sift through.