Adding code as downloaded from version 1.2.2
Optimizing Code, adding timers, and improving cross 0 longitude support

Optimization:
The original code was designed to use prepped polygons, but due to an
assignment mistake, it was not previously utilized.  This has been
corrected including several adaptations to improve speed.

Improving cross 0 longitude
Previously, a domain that crossed 0-longitude would return really odd
results. This has been improved, but may require future additions.

Adding timers:

Timers have been added to enable user evaluation of total time
consumption. This helps in developing a good test case and
understanding when something has gone awry.
Adding Custom Criteria

Comparisons to Mirador OMI NO2d showed problems (Baublitz and
Henderson, 2013) that were the result of updated quality control
algorithms used at NASA. The quality controls are likely to be updated
again or to be specific to a particular use-case. To facilitate this,
we have added a customCriteria option that interprets NASA OMI-style QC
criteria.  The criteria as documented by OMI-NO2 can be input as a
custom criteria.  This allows for ad-hoc criteria applications.
Moving reader dependency to reader class/function

The WHIPS application uses many different file types, but using one
should not depend on all being available.  This is particularly
important because pyhdf is used for HDF4 files. pyhdf is not included
by default with the only some of the most popular scientific
distributions.

Enthought: tables (yes); pyhdf (yes)
Pythonxy: tables (yes); pyhdf (yes)
Anaconda: tables (yes); pyhdf (no)

The hdf4 package can be difficult to install, so making it option
should improve ease of use.