Services decoupling

Cherry picks the de-coupling changes in #955, and fixes review remarks:
- left over test clause for $policy->roleId value
- ctor description on LimitationService
- split FieldTypeService into SPI part and API part so SPI part can be moved to Helper and cleanly used to get SPI FieldType internally, removing the internal ->buildFieldType function
Like you on other topic, I would rather prefer to do some code cleanup. But maybe yes, minimum is to add entry in bc doc at least.