Added locators, crud fns & tests for hw-models

flake8 should accept the above. flake8 will reject this, though:

```python
if (self.wait_until_element(locators["hwmodels.name"]) and
    new_name):
    self.field_update("hwmodels.name", new_name)
    ...
```