Merge 8c2be2409258c4038b8a8424ca25c0fb352d592c into 3.1

The main reason for this is so that the Config class is available to DSOs without needing to include another header file.