Break libTxHPCG up into cuda and opencl version.

Configures but needs work.
Progress on separation of CU and OCL.
More progress.
Adding base class for matrix optimization data.
Implement TxVectorOptimizationDataBase.
Progress: MatrixOptimizationDataTx and VectorOptimizationDataTx
compiling.
Renaming and restructuing complete.
Add Backend and BackendRegistry.
Register the Tech-X cuda backend.
Add some missing methods in TxVectorOptimizationDataCU
Register CUDA backend.
Add BackendFactory and finish off configuration logic.
Adding a config script for ivy.
Many bug fixes.

cuda backend almost working.
Fixing the ExchangeHalo to work with backend interface.
Fix install prefix on ivy.
Additional public headers.
Removing a couple of headers from install lists.
Install in TxHPCG instead of libTxHPCG.
Straightening out naming of config.h