Switch scm client discovery to entry points

Review Request #4145 — Created May 13, 2013 and submitted — Latest diff uploaded




Switch scm client discovery to entry points.

SCM Clients will now be discovered using entry points, instead of a
hardcoded list. This will allow third party packages to provide
support for additional clients.

Additionally, a '--repository-type' option has been added to all of
the rbt commands and post-review. This option allows the user to
specify a particular repository type, which the working directory will
be checked for before other repository types.

The valid repository types can be printed using the new
'--list-repository-types' option to post-review, or by invoking the
new 'rbt list-repo-types' command.
Used the --repository-type option and confirmed the provided type was
being checked initially (By observing the debug messages).