cpp: bioformats: Correct Java-isms in FormatTools

Exceptions were thrown created with new.  This both leaks
memory and throws a different (pointer) type than expected,
so that exceptions can't be caught.  This was likely due to
the code originally being a direct copy of the Java
implementation.
cpp: FormatTools: Ensure all variables are used initialised
formats-api: Add modulo index/coords helpers to IFormatReader
cpp: bioformats: Add modulo index/coords helpers to FormatReader