Changed precursor extraction method

Previous versions of mz used the Monoisotopic M/Z value stored in the
scan trailer, but this seems to be unreliable in that there are scans
which have a valid charge state stored in the trailer, and a reasonable
filter-based estimate of the precursor and a reasonable value returned
by the function getPrecursorMassForScanNum. Therefore, precursors are
now calculated based on getPrecursorMassForScanNum unless the value
returned is 0.0 (I don't know if this ever happens), in which case the
trailer value is used, unless it is also 0.0 in which case the estimate
in the scan filter is used. Obviously, this assumes that
getPrecursorMassForScanNum is the optimal method to use. This can only
be truly verified through the vendor...