Few fixes and added more tests
Added finer control for Org assoc for entities
Updated remove tests with asserts
org-tests rm: fix for flake8
Refactor helpers to return unicode strings
Make sure that CLI always deals with unicode.

To make it simpler and safer to use strings via CLI, all data that gets
passed to Paramiko gets encoded to UTF-8 and all data returned from
Paramiko gets decoded to unicode.
Added some more tests for products
Removed print statements.
Fix StringField to aways return unicode strings
Remove unnecessary if statement
Fixed 2 CLI failures related to lifecycle env.

The CLI ``list`` method for ``lifecycle-environment`` takes 2 arguments
and not a single dictionary.

```bash
======================================================================
ERROR: @Test: Check if an environment can be added to an Org
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 642, in test_add_environment
    new_env = environment.stdout[0]
IndexError: list index out of range

======================================================================
ERROR: @Test: Check if an Environment can be removed from an Org
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 667, in test_remove_environment
    new_env = environment.stdout[0]
IndexError: list index out of range
```

With the proposed fix:

```bash
$ nosetests -c robottelo.properties
tests/cli/test_org.py:TestOrg.test_add_environment tests/cli/test_org.py:TestOrg.test_remove_environment

@Test: Check if an environment can be added to an Org ... ok
@Test: Check if an Environment can be removed from an Org ... ok

----------------------------------------------------------------------
XML: foreman-results.xml
----------------------------------------------------------------------
Ran 2 tests in 48.855s

OK
```
Organization labels cannot be UTF-8 or Latin1.

Here are the failures:

```bash
======================================================================
ERROR: @test: Create organization with valid unmatching name and label only
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ddt.py", line 110, in wrapper
    return func(self, *args, **kwargs)
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 370, in test_positive_create_3
    new_obj = make_org(test_data)
  File "/home/jenkins/workspace/foreman-compose-cli/robottelo/cli/factory.py", line 394, in make_org
    args.update(create_object(Org, args))
  File "/home/jenkins/workspace/foreman-compose-cli/robottelo/cli/factory.py", line 81, in create_object
    'Failed to create %s with %r data.' % (cli_object.__name__, args))
Exception: Failed to create Org with {'description': None, 'name': u'\u5b82\u619f\u94d8\u86d2\u6592\u6b63\u79b6\u90d5\u8696\u5c0c', 'label': u'\u7b05\u7caf\u7b95\u96f4\u64f6\u92ec\u5253\u7560\u9260\u5fdb'} data.

======================================================================
ERROR: @test: Create organization with valid unmatching name and label only
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ddt.py", line 110, in wrapper
    return func(self, *args, **kwargs)
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 370, in test_positive_create_3
    new_obj = make_org(test_data)
  File "/home/jenkins/workspace/foreman-compose-cli/robottelo/cli/factory.py", line 394, in make_org
    args.update(create_object(Org, args))
  File "/home/jenkins/workspace/foreman-compose-cli/robottelo/cli/factory.py", line 81, in create_object
    'Failed to create %s with %r data.' % (cli_object.__name__, args))
Exception: Failed to create Org with {'description': None, 'name': u'\xdf\xcf\xe8\xc0\xd2\xe3\xd4\xfb\xe4\xdd', 'label': u'\xee\xd1\xc5\xd2\xcc\xfe\xf2\xc5\xe0\xfb'} data.

======================================================================
FAIL: @test: Create organization with valid unmatching name and label only
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ddt.py", line 110, in wrapper
    return func(self, *args, **kwargs)
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 375, in test_positive_create_3
    self.assertEqual(result.return_code, 0, "Failed to create object")
AssertionError: Failed to create object

======================================================================
FAIL: @test: Create organization with valid unmatching name and label only
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ddt.py", line 110, in wrapper
    return func(self, *args, **kwargs)
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 375, in test_positive_create_3
    self.assertEqual(result.return_code, 0, "Failed to create object")
AssertionError: Failed to create object

======================================================================
FAIL: @test: Create organization with valid unmatching name and label only
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ddt.py", line 110, in wrapper
    return func(self, *args, **kwargs)
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 375, in test_positive_create_3
    self.assertEqual(result.return_code, 0, "Failed to create object")
AssertionError: Failed to create object

======================================================================
FAIL: @test: Create organization with valid unmatching name and label only
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ddt.py", line 110, in wrapper
    return func(self, *args, **kwargs)
  File "/home/jenkins/workspace/foreman-compose-cli/tests/cli/test_org.py", line 375, in test_positive_create_3
    self.assertEqual(result.return_code, 0, "Failed to create object")
AssertionError: Failed to create object
```

After proposed fix:

```bash
$ nosetests -c robottelo.properties -m test_positive_create_3 tests/cli/test_org.py

@test: Create organization with valid unmatching name and label only ... ok
@test: Create organization with valid unmatching name and label only ... ok
@test: Create organization with valid unmatching name and label only ... ok
@test: Create organization with valid unmatching name and label only ... ok
@test: Create organization with valid unmatching name and label only ... ok
@test: Create organization with valid unmatching name and label only ... ok

----------------------------------------------------------------------
XML: foreman-results.xml
----------------------------------------------------------------------
Ran 6 tests in 80.026s

OK
```
Redmine issue #4486 is no longer a problem.

```bash
$ nosetests -c robottelo.properties -m test_redmine_4486 tests/cli/test_org.py
@test: Cannot search for an organization by name, only label ... ok
@test: Cannot search for an organization by name, only label ... ok
@test: Cannot search for an organization by name, only label ... ok
@test: Cannot search for an organization by name, only label ... ok
@test: Cannot search for an organization by name, only label ... ok
@test: Cannot search for an organization by name, only label ... ok

----------------------------------------------------------------------
XML: foreman-results.xml
----------------------------------------------------------------------
Ran 6 tests in 78.661s

OK
```
Adds functionality to create Location at login if
necessary
Added tests for Bugzilla #1079587.

There is a regression where you cannot search for an organization by its
label. Added DDT tests for it.
More fixes to Org CLI tests.

Some subcommands for ORG CLI have changed so our tests were failing.

```bash
Ran 184 tests in 1918.210s

FAILED (SKIP=85, errors=1, failures=24)
```
Added CLI test for Bugzilla #1077386.

Added CLI test for Bugzilla #1077386 where the ``list`` subcommand for
``lifecycle-environment`` was raising an error when using the standard
output adapter (Table).

```bash
$ nosetests -c robottelo.properties tests/cli/test_lifecycleenvironment.py:TestLifeCycleEnvironment.test_bugzilla_1077386
2014-03-22 10:16:38 - robottelo - INFO - Paramiko instance prepared (and would be reused): 0x1045044d0
2014-03-22 10:16:42 - root - DEBUG - #1077333 ASSIGNED   - Tomas Strachota - Cannot search lifecycle environment via its name if using UTF-8 characters
2014-03-22 10:16:42 - robottelo - DEBUG - Running test TestLifeCycleEnvironment/test_bugzilla_1077386
2014-03-22 10:16:42 - robottelo - DEBUG - >>> LANG=en_US hammer -v -u admin -p changeme  --output csv organization create --name='vdaq9mpo'
2014-03-22 10:16:46 - robottelo - DEBUG - <<< [u'Message,Id,Name', u'Organization created,554,vdaq9mpo', u'']
2014-03-22 10:16:46 - robottelo - DEBUG - >>> LANG=en_US hammer -v -u admin -p changeme  --output csv organization info --id='554'
2014-03-22 10:16:48 - robottelo - DEBUG - <<< [u'Id,Name,Created at,Updated at,Label,Description', u'554,vdaq9mpo,2014/03/22 14:16:42,2014/03/22 14:16:42,vdaq9mpo,""', u'']
2014-03-22 10:16:54 - robottelo - DEBUG - >>> LANG=en_US hammer -v -u admin -p changeme  lifecycle-environment list --organization-id="vdaq9mpo"
2014-03-22 10:16:55 - robottelo - DEBUG - <<< [u'----|---------|------', u'ID  | NAME    | PRIOR', u'----|---------|------', u'623 | Library |      ', u'----|---------|------', u'']
.
----------------------------------------------------------------------
Ran 1 test in 13.162s

OK
```

The BZ has been closed as VERIFIED.
Added BZ decorator to failing Org tests.

Several Org CLI tests are affected by two specific Bugzilla issues
related to deleting an organization and updating an organization's name.
The BZ decorator will ensure that tests get skipped until the issues are
ready for testing, as well as gives us a green build for this module,
allowing us to easily spot any regressions or new issues that come up
when there is a ``Failed`` test.
Updated Smart Proxy CLI test.

We only have one CLI test for smart proxy and it has been failing since
forever due to the fact that you cannot create a random proxy with a
random URL. To create real tests will require some pipping under the
hood. In the meantime, I have updated the single test to verify that
there is an error when trying to create a proxy with a random URL. I
have also commented out the import for Proxy to quiet down PEP8.
Fixing CLI User tests.

Filed BZ #1079649 which prevents us from deleting a user from the CLI. I
have then added tests for this issue, both deleting by login and ID.
Since we already had positive delete tests for Users (but they were only
creating one user), I also added the BZ decorator and turned them to
data-driven tests.