Refactoring

Hi Tom,

I tried to make a quite big refactoring of the code.
Please let me know what you think about this.

Short summary:

- Create a class per method
- Create a class per git strategy
- Extract USAGE into a file
- Refactor git and ftp/sftp methods