Add class decorator support
Add class decorator support

This makes it possible to run `decorate` not only on model instances, but also directly on the classes.

Differences from Drapper:
  * there is only that `decorate` method, no attempt at implementing `decorator_class?` or any other Draper methods was made
  * `delegate_all` works out of the box (meaning `Host.decorate.foo` calls `Host.foo` when the decorator does not implement that method, and does have the `delegate_all` call)
  * `decorate` returns nil when no decorator is found, instead of throwing

Usage:

`VmServer.decorate` will return `VmOrTemplateDecorator`

adding

```
def self.fonticon
  "foobar"
end
```

to that decorator (note the `self`) will cause `VmServer.decorate.fonticon` to return `"foobar"`.

ManageIQ/manageiq-ui-classic,ManageIQ/manageiq-ui-classic,ManageIQ/manageiq-ui-classic,ManageIQ/manageiq-ui-classic