Interval: add copying constructor

Add a constructor for convenient copying of intervals.
Fusion: copy intervals

It seems safer to directly copy intervals when generating sub-regions.
I'm not sure why this didn't cause earlier, but anyway it doesn't hurt
to be safe.
Fusion: use one index value

Re-querying from an array seems error prone. Cache the image index value
and reuse it.
Interval: switch to floats

These values are floats in the original Stitching plugin. We should try
to preserve that.
Interval: make equalsInterval consistent

Was using "min()" and the raw field access "max". We have accessors,
let's just use them.
Fusion: clamp interval endpoints appropriately

Effectively, we were letting the end points of each interval be cast to
ints. This produced slightly different values than the original
Stitching plugin. Instead, we create the smallest interval possible by
using Math.ceil(min) to Math.floor(max) for each interval.