Fixes for custom backend issues...

Hi,
Here are my changes around fixing custom backend related issues. The changes will still allow all Git repositories to work, without any code changes.
Now the <backend> element is obeyed, if present in the plugin xml. This will mean the server URL is not parsed to determine the backend if the element exists. This allows custom backends to have any format they wish for their backends.
Also added a couple of properties to FetcherBase - UseSSHKeys and ParseRemoteUrl. The first one allows a plugin that does not need SSH keys to bypass checking if the server specified has keys set up for it. (E.g. if a HTTP connection rather than SSH). The second one is used for the various parts in the fetcher code that parse the URL for information. 
If either should not be done, then set this to false in your custom fetcher class.
NB when checking in I did 4 commits. Didn't realise these wouldn't be separable in the pull request. The one you need is the 'custom backend fixes' commit, here:
https://github.com/adamfowleruk/SparkleShare/commit/96d0f1976419984933c522e0f340a6875fe296e2