TODO list:
==========

* include Raster Orientation of images (in pyFAI? in fabio?)
* have geometries as pluggable classes (!!!) --> Version 2
* GISAXS geometry
* Full GUI for calibration
* Ensure direct and reverse algorithm give EXACTLY the same numerical value (float32/float64 issue)

Refactor _geometry.pyx
----------------------
* add Fused-types (template) with float/double for all calculations
* propose the output dtype as parameter
* refactor cdef stuf


Done list
=========
* migrate forward version of histogramming on GPU to PyOpenCL (Done in v0.8.0)
* recalibration tool (Done in v.0.8.0) using a poni file and a d-spacing file and an image
* prepare 2 packages one without OpenCL and one with GPU enabled (no more needed with pyopencl)
* use a fast checksum to store the signature of buffers/array which are on the GPU (Done v0.8.0).
* in LUT-OpenCL; iterate only up to max_lut_in_workgroup
* move the uint16 -> float32 or int32 -> float32 to GPU when possible
* port spline calculation to opencl
* add mask on calibration/recalibration tools (Done v0.8)
* implement LUT on 2D caking as well + OpenCL version
* binning at the Azimuthal Integrator level

Python3
=======
List of modifications that needs to be done for python3 compatibility:


Done:
-----
* cmp function in sort:
  - in io.py & peakpickeruse the key argument
* Metaclass in detector via six