Data Driven Testing approach (needs `pip install ddt`

please run `pip install ddt` if/once this PR gets merged.

allows to define data driven tests like:

```python
    @attr('cli', 'subnet')
    @data(('network', generate_ip3()),
          ('mask', '255.255.0.0'))
    def test_update_success(self, opt_val_pair):
        options = {}
        options['name'] = self.subnet_update_ok_name
        options[opt_val_pair[0]] = opt_val_pair[1]
        subnet = Subnet(self.conn)
        subnet.update(options)
```