Added locators, crud fns & tests for hw-models

Does it make sense to have the `really` parameter? Is there a use case for calling `self.hardwaremodel.delete(name, False)`?