Implement Blocks for contact-related entities
This implements 3 interrelated features:
- Joins where one entity extends another (e.g. Email extends Contact).
- Afforms which can be embedded on other afforms as blocks.
- Repeatable entities.
Email, Phone, Website etc. all get afform blocks, which like any other afform can be overridden and extended. Multi-record custom field groups also get auto-generated afform blocks.