The parsing utilities were incomplete when requesting object ids,
this made developers reuse bad patterns. Instead we use a common
function that can use the best practices.
Fix various issues with the pdfinput presented in 3931
1. Not tracking the use of form1 groups when combined with
out-of-tree conditional groups (i.e. layers). We can't have
layers which exist within multiple parents so we ignore OC's
inside form1 elements.
2. The page CTM was being ignored because for most pdf files it's
zero, but for these it's not. Repairs two regressions.
3. The color space tracking was broken when inside a form1 structure
that re-used the color space names from the main document.
We add the formDepth to the cache_name to fix it.
4. Wrong font style when font render strat changes inside text stream
5. Bad font css when font style changes but wasn't invalidated
6. Missing aria-label attribute for text-path rendered text.
7. Form1 clipping was disabled but is needed, this increases the number
of groups but fixes various issues.
8. Fix missing text-clipping (render mode 4)
9. Fix gradient stop offset scaling so it's always 0-1
10. Fix gradients created way too early for text, breaking their transforms
11. Crash when no optional content dictionary available.
12. Crash when glyph end is by-passed at end of loop.
13. Crash when glyph table not ready for cairo rendering.
14. Improved multi-page-sample pdf test with more variations of features.
For dialogs, we have a better experience on load if we request a size
allotment on_map instead of on creation. This means the widget will
have a parent and the allotment will make sense.
We also want to do the update on the dialog itself, so child widgets can
be alotted the right sizes. This helps with the object/layer dialog and
it's vanishing entries.