Issue #3620033: Assert the paragraph model against real paragraph types
The paragraphs module is optional to this project in the sense that nothing breaks without it, and it is on almost every site that has a use for an API of this shape. The paragraph layer is also where the deepest and least predictable part of a response comes from, so leaving it out of the fixture left the hardest thing in the model without a test: how many levels of paragraphs a site nests, which is the one fact the map reports about them specifically. Until now that number was only ever asserted against a map built by hand in a unit test.
Two fixture modules, because the number has two answers and both are worth pinning. The first holds a block that holds rows, which is a chain that ends: two levels. The second adds a pair of types that hold each other, and is installed by the test that asserts the answer is then unbounded - a generator walking that without knowing is a stack overflow at render time.
The test skips where the module is absent, so the pipeline stays green on a build with no contributed modules, and the core-only fixture keeps no dependency on any of this, which is what lets that one go on running there.
Two things the fixture had to be built around. A row points at the node type that references nothing: pointing it at one that references back closed a loop through three entity types, and the depth of the paragraphs stopped being what the fixture was about. And the scanner is taken from the container again after a module is installed, because the container is rebuilt and the one held since setUp reads the entity types the site had before.
Closes #3620033