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
is which_gpu ever validated? Like if I pass in which_gpu = -1 or which_gpu = 2000, what happens? Will cuda fail (with a useful error message) or will it crash the machine?