Fix `length_in_pt` cache
Fix `length_in_pt` cache

Only cache single length declarations, and use both reference and font
size for the cache lookup. This fixes font-size relative `width` and
`height` declarations applied to elements with different font sizes.
They would previously be cached by the provided reference size, which
is usually the containing-block width or height. E.g., if two elements
had the same containing block, an `em` height, but different font
sizes, the resolved height of the first element would be used for both.

Arrays passed to `length_in_pt` are no longer cached in their entirety,
but performance seems to be comparable after the changes. Passed arrays
mostly involve margins/borders/padding and those could probably be
better cached in the appropriate places. In the light of the previous
performance improvements, any negative performance impact should be
negligible; further investigation and more serious benchmarking can
be done at a later stage, if desired.

Caching `px` and `rem` sizes in a static cache variable is still bogus,
as they have nothing to do with the current font size, but depend on
document-specific values. That issue is not addressed here.

Additional optimizations:
* Move border-width keyword handling to the appropriate method
* Remove `normal` keyword handling. It is already handled by the
line-height setter

dompdf/dompdf,dompdf/dompdf