LPS-43952 SF
LPS-22792 New methods to count and check existence of elements in collections using predicates (functional way)
LPS-22792 Applied new functional pattern using predicates
LPS-22792 Use Collection instead of List when possible. It allows us to use those methods with any kind of collections (e.g sets, lists, queues and so on)
LPS-22792 Added new utility method for arrays
LPS-22792 Moved validation code to domain-model object (models without code are a well-known anti-pattern called AnemicDomainModel)
LPS-22792 Validation now relies on isolated domain-model methods.
LPS-22792 Improve existing test.

Optimize test listeners.
LPS-22792 Add new tests for vocabulary validation
LPS-22792 Use classType for validation when updating a vocabulary
LPS-22792 Include classType in edit vocabulary form
LPS-22792 Created specific child of UnicodeProperties for asset vocabulary settings. This allows us to encapsulate internals (key names) of settings.
LPS-22792 Refactored: moved logic and applied Demeter's law
LPS-22792 Moved tests from integration to unit (thanks to previous refactor)
LPS-22792 Filter vocabularies now supports class type
LPS-22792 Restrict vocabularies by selected classType in Web Content
LPS-22792 Restrict vocabularies by selected classType in Document and Media
LPS-22792 Upgrade process
LPS-22792 SF
LPS-22792 Fix rebase errors