Toward Safe Control under Uncertainty: Adaptation and Prediction for Control Barrier Functions