Added cuda code to create and remove even odd ordering.
Added function definition for cuda applyPreconditioned
Added even-odd preconditioning apply functions to CudaWilson
Made CudaLinearOperator::applyPreconditionedHermitian virtual
Added missing cast to Complex* in CudaLinearOperator::applyPreconditioned
Added missing angled bracket in CudaWilson implementation
Set CudaLinearOperator odd/even permutation functions to run on CPU
Removed old assignDev call from makeEvenOdd function
Removed remaining old function call from makeEvenOdd
Added makeEvenOdd(Source|Solution) functions.
Change functions to create even and odd sources.

Now they only act on the part of the spinor that actually needs to
change.
Set makeHermitian to act on half the spinor for the preconditioned case
Added preconditioning into cuda dirac matrix inversion function
Fixed some compile errors in cuda interface
Fixed serveral bugs in relation to reference to even and odd indices
Fixed several buffer overflow bugs in new cuda even-odd implementation
Added applyPreconditionedHermitian to CudaWilson
Fixed error in applyPreconditioned -> temporary variable z was in CPU memory, not GPU memory
Removed evenIndex and oddIndex variables from hopping_term.tcu init
Removed race condition in even-odd source/solution converters

Now relies on the fact that EvenEvenInv and OddOdd are diagonal and
hence thread safe