Implemented the SCM logic separately so that it can be reused by other tools, as well as the script library
Decoupled the SCM classes from the provider logic and improved the credential management for SVN.