Add Gaussian process functionality
This work was started in fb74b17 in the gp branch and continues to be improved.
Objectives for this project are still being established and depend largely on the requirements of those using the added functionality, but I'll update things here when they become clear.