Rename to a slightly more indicative type name.

+review REVIEW-5245
Introduce a super class to take care of some boiler plate.

+review REVIEW-5245
Prevent subtyping of ManagedSet.

+review REVIEW-5245
Shuffle some packages around for better organisation.

More to come.

+review REVIEW-5245
Simplify the model schema extraction context stuff.

Remove the need for a type hierarchy of contexts.

+review REVIEW-5245
Bust up of schema inspection/extraction logic into smaller pieces.

The two primary motivations here are:

1. More composed inspection strategies
2. Removing all functions from the schema layer

#1 should make iterating forward simpler.

#2 is ensuring that the schema layer is easily externalisable. To do this I want to keep opaque code out from the start.

+review REVIEW-5245