Abstract models

To ease extensibility in projects

| Q                   | A
| ------------------- | ---
| Bug fix?            | N (extensibility point)
| New feature?        | N
| BC breaks?          | N
| Tests pass?         | Y
| Scenarios pass?     | Y
| Checkstyle issues?  | N
| Changelog updated?  | Y
| Fixed tickets       | PIM-2602 (partialy) + PIM-2375 (totaly)
| Doc PR              |