create a PointerMap instance accessing this PointerMapBuilder after calling this method is not allowed
starting at the given byte offset, call pointerAt() for each pointer in pm
mark the pointer sized field at byte offset as pointer if the offset is unaligned, it does nothing
set the underlying type's size in bytes
code for manually building PointerMaps separate struct from PointerMap because for some representations, it may be hard to handle arbitrary pointerAt() calls to update the internal data structure (think of pointer maps encoded as lists of runs etc.) xxx untested