Correct typo ipmPrev instead of iphPrev

ipmPrev refers to ImagePotMatrix Previous.
* timestream/manipulate/pot.py (ipmPrev, iphPrev): In ImagePotMatrix we want
ipmPrev
Fix TimeStreamImage.write

* timestream/__init__.py (write): We cannot reset _pixels when writing. We now
maintain internal consistency until the end of the write method were we reset
path.
Reference ImagePotMatrix from ImagePotHandler

We need to be able to remove all excess data before we pickle an object.
Ideally we will have an ImagePotHandler with no ndarrays but with all the
relevant information like pot center, plant center, calculated features ....
This commit sets us up for this behavior.
* timestream/manipulate/pipecomponents.py: Initialize ImagePotHandler with the
containing ImagePotMatrix instance.
* timestream/manipulate/pot.py (ImagePotHandler): In general we make sure that
the class is driven by self._mask.
(ImagePotHandler.__init__, iphPrev, superImage): Remove iphPrev and superImage
from init args. We put these in new property methods.
(ImagePotHandler.mask): Whenever we reset mask we reset features.
(ImagePotHandler.ps): Whenever we reset ps, we reset mask
(ImagePotHandler.ipm): Whenever we reset ipm, we reset mask
(ImagePotHander.superImage): We return the image from self._ipm
(ImagePotHandler._image): This is an internal property method that returns the
cropped image. Its prefixed wtih _ because it is only meant for internal use.
(ImagePotMatrix.__init__): Create ImagePotHandler with the new __init__ args
Add check when setting _ipm.

* timestream/manipulate/pot.py (ipm): If there is a pot with the same id but
different address we raise an error.
(__init__): Add some documentation
Add strip methods to prepare for pickling

* timestream/__init__.py (TimeStreamImage.strip): New Method to remove large
structures before pickling.
* timestream/manipulate/pot.py (ImagePotMatrix.strip, ImagePotHandler.strip):
Likewise.
(ImagePotMatrix.__init__): Check image to see if its instance of
TimeStreamImage.