OS boundary tests with factory support

- Removed `create_os` fn and moved the implementation to factory with make_os. Similarly make_arch, make_partitiontable for architecture and partition table respectively.
- Added support for creating OS with description
- Added 7 new boundary tests with diff data variations.
- Updated existing tests to use factory implementation
Is this a dictionary lookup that's been broken across two lines? Ach, that's really hard to read. How about something like this:

```python
if self.wait_until_element(
        locators['operatingsys.description']):
    self.field_update('operatingsys.description', description)
```