CAS-14756: Fix TiledShape constructor using wrong overload in buildImage()
TiledShape(IPosition(4, x, y, shape[2], chunksize)) called the
single-argument constructor, making the tile dimensions the image
shape. The resulting tiny on-disk image caused all MPI workers to
fail in SpectralImageUtil::getChannel() with "Channel requested does
not exist".
We now pass the full image shape as the first argument:
TiledShape(shape, IPosition(4, x, y, shape[2], chunksize))
Also use ceiling division for chunksize to handle nchan % nchunks != 0.