Look for framework .NET to get msbuild.
Add the class Version.
Separate checkout between checkout and resolve_url (if users want to specify their own url handling).
Add an instance variable scm_tool to allow users to specify project-specific things about SCM.