Ticket 49097 - fix the pblock to be a hierachial structure
Bug Description: The pblock was a giant kitchen sink: 712 bytes,
and analysis showed that normally 80% or more was NULL. We practically
take RAM and set fire to it wastefully.
Fix Description: because the pblock is accessed via get/set, we can
rearrange the internals to a hierachy (tree) of sub-structures that
are dynamically allocated as required. Each sub structure is a
grouping of commonly used fields, which aids cache coherrency,
reduces our memory allocation footprint, and also improves
our performance as we are allocating and freeing less.
https://pagure.io/389-ds-base/issue/49097
Author: wibrown
Review by: mreynolds (Thanks!)