Various API improvements that make it easier to implement/consume SCM API:
- Provide a way to perform probes without doing a full scan
- Provide a way to allow scanning with custom criteria
- Tweak the contract of SCMFileSystem to make it easier to implement/consume while reducing round trips
- Clarify the difference between the SCMFileSystem view and the probe view.
- Add categorization of SCMSource / SCMHead so that e.g. the Branch API can sort based on categories