TextLayout.getBounds() will return a bounds that does not account for
any strike through. This is apparent if the text begins or ends with a space.
This is an oversight and it requires the same treatment as is being given to
an underline.
But underline isn't returning bounds that completely enclose the rendering
either, although its a very small error.
The reason for this is that the rendering is using a BasicStroke and defaulting
to CAP_SQUARE. Although in the cases where it needs to explicitly specify
parameters it chooses the correct CAP_BUTT.
So part of this is to fix the uses of BasicStroke by strike through and
underline to always use CAP_BUTT.
Test case is attached.