Jialei gh219 improve consistency check between gpu vs cpu computation for general qp ei

********* PEOPLE *************
Primary reviewer: @suntzu86

Reviewers: @sc932 @ypwais @yaoster

********* DESCRIPTION **************
Branch Name: jialei_gh219_improve_consistency_check_between_gpu_vs_cpu_computation_for_general_qp_EI
Ticket(s)/Issue(s): Closes #219 

********* TESTING DONE *************
make test-no-tox: total test time 27.40s
cpplint.py to check style
it'd be nicer if this were:
```
#define OL_CUDA_ERROR_THROW(ERR) do { CudaError _err; _err = (ERR); if (unlikely(_err.err != cudaSuccess) { OL_CUDA_THROW_EXCEPTION(_err); }} while(0)
```
Since right now, if you do ```OL_CUDA_ERROR_THROW(some_expression())```, each appearance of ```_ERR``` will re-evaluate the expression. The do-while (i know it looks goofy) guarantees only 1 eval.

Same change should be made in ```OL_CUDA_THROW_EXCEPTION```