Make each solution dictionary an object.

The change is partial to keep this change still correct but readable/reviewable.
Followup changes will further move functions into the Dependency class.
If it was done in one change, it would be unreviewable.
Fix GetScmName() for protocol svn+ssh://.

TEST=didn't break the smoke tests.

Review URL: http://codereview.chromium.org/2837001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49707 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_scm.py b/gclient_scm.py
index b6240a7..a76d2d0 100644
--- a/gclient_scm.py
+++ b/gclient_scm.py
@@ -62,7 +62,7 @@
         url.endswith('.git')):
       return 'git'
     elif (url.startswith('http://') or url.startswith('https://') or
-          url.startswith('svn://') or url.startswith('ssh+svn://')):
+          url.startswith('svn://') or url.startswith('svn+ssh://')):
       return 'svn'
   return None