AbstractImageMetadata: fix setAxis

When replacing axes (e.g. the new axis type was not found, so its index
was -1), was trying to use the axis index (of -1) in the axis array..
which of course was invalid.

Corrected the logic so that if the axis already exists in the axis list,
its index is used, otherwise it replaces the axis at the given index.
ICSFormat: add support for micro-time label

Updated the ICSFormat parsing of Lifetime axis handling to read the
"parameter labels" category. If a value of "micro-time" is present, that
axis will then be labeled with LIFETIME.
Fall back to old FLIM hack if no micro-time data

The updated micro-time ICS files from Gray still have the history labels
tags that triggered the old ICS hack (and they are required for reading
on the Gray side). But the old ICS hack is incompatible with the new
micro-time data (because micro-time data does not require a
dimensionality hack, it just's a signal to use the lifetime axis label)
so we need to avoid using it when micro-time labels are detected.