Adding interfaces for repositories

This PR aims to add interfaces for repositories (which lie in the bundle) so that the Component code does not reference Bundle code

TODO
- [x] `UserNotificationRepository`
- [x] `UserPreferenceValueRepository`
- [x] `UserRepository`
- [x] `ProjectRepository`
- [ ] ~~ClientRepository~~ (not required - using `EntityRepository` type hints instead)
- [x] `AttributeRepository`
- [x] `ChoiceAttributeChoiceRepository`

It's worth noting that the `findByFilters()` method that some of the filterable repositories have is covered by `Tickit\Component\Filter\Repository\FilterableRepositoryInterface` so this method should be omitted from any repository specific interfaces.