Added support for pipelined CG algorithm.  Currently switched off by default (will make this an option in the param).  Added the required blas functions for this also.  Closes #13.
Merge branch 'master' of github.com:lattice/quda
cleaned up communication routines
fixed bug for asmmetric preconditioning for non-degenerate twisted mass, optimized constants initialization
a few corrections in dirac_twisted_mass.cpp file
Major rewrite of comms interface (closes #46)
More comms cleanup.  Everything that works with MPI should now also
work with QMP (HISQ forces, link-fattening, etc.)
Fixed memory leak in multi-shift CG.
Fixed race condition for T-dimension multi-GPU communications that was introduced with merged packing kernels.
Added check that src and dst fields with the same precision must have the same byte size.
Fixed incorrect odd pointer references that occur when using full fields when the ALIGNMENT_ADJUST macro changes the size of allocated memory.
Added missing epsilon to quda_fortran.h needed since Non-deg twisted mass merge.
Implemented per-pole refinement for Wilson multi-shift.  Fixed bugs in invert_test and multi-shift solver for Wilson multi-shift. Closes #108.
QUDA_MAX_DIM reduced to 5 instead of 6.  This prevents kernel argument overflow for sm_1x architectures with the packing kernels.  Closes #106.
Fixed invalid enumeration bugs in enum_quda.h.
QUDA now supports now supports bitwise setting of stopping condition type (QudaInvertParam::residual_type).  Closes #110.  General clean up of heavy quark residual support in QUDA and added support when using GCR.
fixed bug that overwrites Ls parameter for DW fermions
Fixed comms bug introduced with commit 2a72aa81
Improved the robustness of the CG breakout condition.  Also, when the reliable update occurs, the gradient vector is reprojected to ensure orthogonality.
If convergence criteria is met in CG, then perform a reliable update before breaking loop to ensure that true criteria is met.