Added get_bounds logic to UnpackedShapes, and no more double unpacking of text.

The get_bounds method of UnpackedShape will return the bounds for the outline if
available and otherwise try to return the bounds for the polygon.

The Text packed shape has methods to get the bounds even before it is unpacked.
This is so that it can save some time, in various situations where unpacking it
multiple times would be required. Once to get the bounds of the text, and then
calculate all the proper paramters for the text packed shape, and then to
unpack it.