Contextual Gaussian Process Bandit Optimization