CRM-14370 - Expose generic CRUD API for Doctrine entities (as APIv4)

Most of the logic is handled by DoctrineCrudProvider, although permissions
are handled by AnnotationPermissionCheck.