PERF: Do not spawn threads that will not be used.

Update the ImageSource base class, to not spawn threads that will not
be used. Previously, threads were spawned and then terminated in the
ThreaderCallback method. This method was not user overindulge, so no
compatibility issues should be created.

I have observed up to 100X performance improvement for processing an
image of 1 pixel :)

Change-Id: Ie2d21886e175b5fbee0ce20f0628c97020d8d9e2
ENH: ImageIO's now use ImageRegionSplitter base

Moved ImageIORegion to Common module. Added GetModifiable methods.

Added methods to ImageRegionSplitterBase for ImageIORegion objects.

Refactored ImageIOBase to use the default ImageRegionSplitterBase
method for streaming IO.

Change-Id: I0c07db23824d65086a64b76dbecbe01137fa78a2
Merge topic 'ConsolidateSplitting_PerfThread'

0e9112f PERF: Do not spawn threads that will not be used.
Merge topic 'ConsolidateSplitting_IO'

defb9c1 ENH: ImageIO's now use ImageRegionSplitter base