History on content type

History use content type instead of separated history model for each content type (asset, licence, support, etc.). This solution is more flexible.
```
Snapshot = namedtuple(
    'Snapshot',
    ['current', 'previous', 'added', 'deleted', 'changed', 'obj', 'field_name'],  # noqa
)
```