Fix for recording which data sets were mpi exchanged
For directly accessed op_dat do not do halo exchanges if not executing over redundant compute block
Adding hash table to gather performance information

Adding a fully working hash table to gather performance information
without collisions for the mpi+seq backend.
Minor cleanup
Removed compiler warnings
Minor compiler flag fix
Minor comments cleanup
g++ refuses %lf as double format and it is indeed obsolete
Merge pull request #60 from OP2/fix/various-bugs

This pull request fixes several bugs in the OP2-Common library. 

1. A previous fix for Hydra had caused halos to be exchanged even for
   non-execute direct op_dats. This had caused the adt_calc loop to
   also exchange halos in the airfoil application. But only the
   res_calc loop is suppose to exchange halos. This fix was also
   successfully tested for Hydra. 

2. Fixed a bug where, the COMM_PERF flag was not switching on the
   functionality for collecting the information regarding which op_dats
   were exchanging halos. 

3. Fixed the MPI performance gathering for MPI+SEQ using op_seq.h where
   the previous simple implementation of a hash table was causing hash
   collisions. This pull request uses the lightweight open source
   uthash hash table implementation. Only the addition of uthash.h
   header file to op2/c/include was needed to get this functionality.