PlaneSeparator: synchronize caching sections

There is significant use of cached planes that follows the test for
cached planes. This option really needs to be atomic.. if we find a
cached plane, we need to ensure that it is the one used later, and we
can not check for cached planes until we have finished updating the
cached info.

It would be nice to figure out how to optimize this code, as I think
just blanket serialization here may be bad. But it does seem to be
necessary given the current implementation.
SCIFIOCellImgFactory: remove optimalTileSize logic

There was an unnecessary 2MB limit on tile sizes. This was illogical, as
what really matters is the size of the resultant image - from which the
tile/cell size is intentionally supposed to be independent. Also, the
limit was silly as it was conflicting with the intended 2 gigapixel
array limit.

Also the public static API was unnecessary because there was nothing you
could actually do with the computed tile sizes. It was all based on
heuristic, and effectively just taking the optimal tile X/Y from the
reader.

That is precisely what we want to do anyway. So the computation methods
were removed and replaced with just using the optimal X/Y as determined
by the reader.

With these computation methods removed, there is nothing to test really
in the SCIFIOCellImgFactory. So the tests have been removed (the class
was left as a placeholder for future tests if needed).

Closes #148