Don't exceed image ranges

* timestream/manipulate/correct_detect.py (matchTemplateLocation): Be sure that
calculated ranged don't go over the image size nor move to values less than
zero.
Don't depend on accuracy of pot detection

We use the minimum distance between pot centers to calculate the growM factor.
This results in bizarre errors in pot size.
* timestream/manipulate/pipecomponents.py (__call__): Use the median of the
sorted distances to the nearest neighbor to calculate growM.
Remove img from ResultingImageWriter

And make sure that all __call__ methods have a "log" line.
* timestream/manipulate/pipecomponents.py (ResultingImageWriter): Remove img.
ImagePotHandler: maskedImage -> getImage

getImage is a more general method that can return (or not) a masked pot img.
* timestream/manipulate/pipecomponents.py : call getImage instead of
maskedImage.
* timestream/manipulate/pot.py (getImage): New method, replaces maskedImage. Add
structure to add feature strings to the pot img.
Relate a range to each statistic parameter.

* timestream/manipulate/pipecomponents.py (Resultingfeaturewriter_csv.__call__,
Resultingfeaturewriter_ndarray): Make sure we call StatParamValue.value.
* timestream/manipulate/plantSegmenter.py (StatParamValue): New class that
contains logic for statistical parameter values. It adds range to the values.
* timestream/manipulate/pot.py (calcFeatures): Be sure to call value in the
StatParamValue instance.
User can now add feature values in the output images.

* timestream/manipulate/pipecomponents.py (ResultingImageWriter.argNames): We
add an additional argument addStats. Its a list where the user can define which
of the features he wants in the output image.
(ResultingImageWriter.putStatsAllPots): New Method to put all the feature text
in the image.
* timestream/manipulate/pot.py (ImagePotHandler.getImage): This is where we
actually call cv2.putText().
Add minBoundingCircle to feature calculations.

* timestream/manipulate/plantSegmenter.py (StatParamMinCircle): New class
defining the circle values.
(StatParamCalculator.mincircle): New Method that to actually calculate the min
bounding circle.
Feature printing happens in StatParamValue

* timestream/manipulate/plantSegmenter.py (StatParamValue.drawParamInImg): We
draw part of the name and the value of the parameter in the received image and
coordinate.
* timestream/manipulate/pot.py (getImage): Just call new method to draw.
Add print circle capabilities.

* timestream/manipulate/plantSegmenter.py (StatParamMinCircle.drawParamInImg):
Overload this method to print the circle instead of the value.