ZeissZVIReader: Add layer early to avoid ROI loss if exception thrown
ZeissZVIReader: Correct use of offsets within the ROI block

Replace the existing two phases of detecting with ROI signatures
and then processing each signature with a single loop to iterate
over the ROI block.  This prevents errors when the ROI signature
is found in the ShapeAttrs sub-block or the points block, or
anywhere else within an individual ROI.  Also parse the total
shape count for error checking.  Additionally, rather than
detecting the offsets for the name and font blocks and then
seeking back, just parse these on the fly.  Errors autodetecting
the offsets were causing problems which this solves.  Also parse
out the ROI name in additional to text annotation.
ZeissZVIReader: Compute bbox width+height at the correct point
ZeissZVIReader: Cope with zero length strings
BaseZeissReader: Store Shape text for all ROI types

Previously, only text for measurement types (i.e. measurement
values) was stored.  Now, store for non-measurement types as
well.
Merge pull request #407 from rleigh-dundee/zvi-roi-develop

ZVI: Parse ROIs correctly (develop)