Fixed time range misbehavior of iter_by_timepoints
Add skipping existing data feature for iter_by_files
Image rotation has to be after image undistortion. This is because:
* Camera calibration is performed before any image rotation. Resulting camera parameters are associated with the image orientation.
* If image rotation, e.g. 90 degree, is applied before undistortion, undistortion using original camera parameters is no longer valid. This can cause severe error in the resulting images.
Fix error to detect colorcard for glasshouse experiment.
Add timestream initialisation by files.
Add a missing file from last commit
Add configFile path into "settings" dict to give location of initial data.
Fix tests for TimeStream

* tests/test_classes.py (test_read_metatdata_weird): We now raise an Attribute
error.
(test_timestream_init_bad_params): To trigger the exception we need to pass an
actuall string. "" is as if we didn't pass anything
(test_iter_by_timepoints_withgaps_no_rm_gaps): This no longer returns a None
image. Now we check to see if pixels is of length zero.
* timestream/__init__.py (TimeStream.__init__): We assing version to
self.version effectively running the necessary checks.
Initial commit for the derandomization GUI

We begin with a setup that has the basics for image zoom/pan and a visualization
of the csv file. We also have two buttons that add images and csv files.
* util/derandui.py (DerandomizeGUI): New class that will hold all logic for the
derandomization gui.
(PanZoomGraphicsView): New class for visualizing images with pan and zoom.
* util/derandui.ui: This is the skeleton of the GUI. File produced by "designer"
(Qt's gui designer).
Add time stream list.

* util/derandui.py: Add GPL text.
(timeStreams): Dictionary that holds all the opened timestreams.
(onClickTimeStreamList): When we click on the "+" symbol we add a timestream
directory. We fail with an error message is TimeStream.load fails.
* util/derandui.ui: We add the timestream list as a TableWidget to the user
interface. We add a hidden colomn to relate the rows in the timestream list to
the new self.timeStreams dictionary.
Remove frame margin.

* util/derandui.ui: So we can give more space for the timestream list, image and
csv table.
Open TimeStreamTraverser and show an image

* timestream/__init__.py (TimeStreamTraverser): New class that inherits from
TimeStream. It implements the timestream as a backwards and forwards moving
object. The rest is basically the same as TimeStream.
(TimeStreamTraverser.{next,prev,curr}): New methods for new class. They are
responsable for keeping internal track of where the timestreamtraverser is. If
we overflow we continue at end or start of time stream.
* util/derandui.py (showImage): Puts an image on the scene.
(selectFile): Removed this method.