Factories

Add a new "Factory" class. This class (and subclasses) is suitable for use when writing API tests, and ideally should be of use when writing CLI and UI tests as well. Class `Factory` currently has one method of use: `attributes`. When called, this method returns attributes which can be used to create a new Foreman object.

Make use of the new factory in some of the existing tests. Add the new code to the API docs. Add tests for all new code.
`\` is not good, wrap the entire condition in parenthesis, that is better

```python
elif (self.interface is 'CLI' 
       and hasattr(self.entity.Meta, 'cli_names')):