Jialei gh368 cuda python interface

********* PEOPLE *************
Primary reviewer: @suntzu86 

Reviewers: @sc932 

********* DESCRIPTION **************
Branch Name: jialei_gh368_cuda_python_interface
Ticket(s)/Issue(s): #368 

********* TESTING DONE *************
make test
We have exception handler for all GPU API callers, so if the user inputs invalid ``which_gpu``, error will be caught and reported in error message. It won't crash the machine.