Control Barrier Functions for Unknown Nonlinear Systems using Gaussian Processes