[WIP] #1130: Add support for Type Collections

In this PR I intend to solve #1130 by implementing Type Collections. Unfortunately during the development of the Descriptor layer for the writers I had forgotten about arrays and collections, and how they should be rendered as individual links.

This omission has quite extensive consequences as a significant change needs to be made.

Acceptance criteria:

- [ ] An array containing a link to another Descriptor should show that
- [ ] An array containing a link to a non-documented element should show that element name without formatting
- [ ] The changes should support having a base type (in case of collection objects)
- [ ] The changes should support having multiple types of key and being able to define them
- [ ] The changes should support having multiple types of value and being able to define them
- [ ] All changes should be covered by a unit test
- [ ] The behaviour should be covered by a behat tests
- [ ] All new elements should be covered by a DocBlock