generic approach for constructing hammer cli commands + more.

1. providing options{} to the commands and making params list via that.
```
        subnet = Subnet(self.conn)
        options = {}
        options['name'] = generate_name(min=6)
        options['network'] = '192.168.103.0'  # TODO - needs random unique
        options['mask'] = '255.255.255.0'
        self.assertTrue(len(subnet.create(options)[1]) == 0, 'Subnet created')
```

2. adding support of nosetests "groups"
```
    @attr('cli', 'subnet')
    def test_info(self):
```
this enables nose to run a specific tests set only via:
```
export PYTHONPATH=$(pwd) && nosetests -c robottelo.properties --processes=1  -w tests/ -a "cli" -a "subnet"
```

3. combining more than one object (and test class as well) into a single python module:
```
lib.cli.infrastructure 
test.cli.test_infrastructure
```
there is intended to have tests and objects of following: 
```
Module for the following classes:
- SmartProxy
- ComputeResource
- Subnet
- Domain
```