CMS-4390 Data V2 - Change DataSet to be a value of type  PropertySet
- Fixed Value.ContentId.toJsonValue and ValueType.ContentId.fromJsonValue
- Added method PropertyArray.addPropertyArray
- When parsing PropertyArray from JSON, PropertyArray is now created even if it has no values.

CMS-4462 Data V2 - Introduce PropertyId
- Changed DefaultPropertyIdProvider to produce unique ids using UUID.randomUUID()
- Introduced PredictivePropertyIdProvider making it easier to test serializing of a PropertyTree to JSON/XML
- Introduced PropertyIdProviderAccessor which PropertyTree with no constructor params uses to pick the PropertyIdProvider to use. By default PropertyIdProviderAccessor uses DefaultPropertyIdProvider, but it's recommended that we are able to make a provide as unique ids but in a faster way (avoiding slow UUID.randomUUID()).