Extract "config_processor" from "Ci::Pipeline"
The Gitlab::Ci::YamlProcessor is coupled with the Ci::Pipeline model. This means that in order to process the CI configuration file to create a pipeline it has to be accessed through a Ci::Pipeline object. This not only creates a circular dependency on the existence of Ci::Pipeline object but also couples it too much to a specific implementation of CI configuration.
This would bring benefits to issues such as: #16094 (closed) and #14376 (closed).
With this refactoring we would be able to call YamlProcessor from outside of the pipeline.