Add getSegmented method for ImagePotHandler.

We do the mask property calculation in two steps, separating the actual
calculation from the assignment to self._mask. This is important because
the getSegmented code might run in parallel in different processes that
do not share memory
* timestream/manipulate/plantSegmenter.py (ImagePotHandler.getSegmented):
New method, replacing the "mask" property.
(ImagePotHandler.mask): Do basic checks and call getSegmented when we
(ImagePotHandler.mask.setter): Be very picky when we assign mask. Only
the correct type int64, the correct shape and ndarray can be set.
need the actual mask.
(PotSegmenter_KmeansSquare, ImagePotHandler) Make sure that the mask is
float64
Execute plant segmentation in separate process.

Use os.fork to spwan a proces for each segementation calculation.
* timestream/manipulate/pipecomponents.py(PlantExtractor.__call__): Call new
method segAllPosts.
(segAllPots): New method to segment all pots. When in parallel, it uses cPickle
to marshal mask objects and pass them back to the parent. The parent process,
collects all masks and assignes them to its ImagePots.
Add compactness and eccentricity dependant on skimage version.

* timestream/manipulate/plantSegmenter.py(compactness, eccentricity): We
reactivate these to methods with the condition that they only get calculated
when skimage veresion is after 0.10
Write message on every pipeline component

* timestream/manipulate/pipecomponents.py(FeatureExtractor): Print component
message.
(Resultingimagewriter_ndarray): Likewise
(Resultingimagewriter_csv): Likewise