Refactor 'browser guesser'

This pull extracts the GitHub specific guess code from GitSCM.java into a static class in the GithubWeb class. A thin adaptor class is added as RepositroyBrowserGuesser.java, which currently checks the supported GitRepositoryBrowser classes for match and returns the RepositoryBrowser that matches. As a trial, a Stash guesser is also implemented.
The Jenkins way™ is to create an `abstract` class implementing the marker `ExtensionPoint`, then create some implementations marked `@Extension`, then iterate `ExtensionList.lookup`.

In this case, my original TODO comment suggested a slight variant: make an `abstract class GitRepositoryBrowserDescriptor` which the current descriptors would extend from, and add the (`@CheckForNull`) guess method here, which is natural since you would expect the descriptor for a repository browser to be able to create instances of that browser from a repository URL. Then you can use `ExtensionList.lookup` on `GitRepositoryBrowserDescriptor` (they are already registered as extensions).