A Survey of Constrained Gaussian Process Regression: Approaches and Implementation Challenges