Allow SCM to work with non-AbstractProject

[JENKINS-23365](https://issues.jenkins-ci.org/browse/JENKINS-23365) Generalizes `SCM` and related classes to be usable for example from `WorkflowJob`. Cf. [git-plugin changes](https://github.com/jglick/git-plugin/compare/SCM-Job) and [workflow-plugin changes](https://github.com/jenkinsci/workflow-plugin/compare/SCM-Job).