Added basic support for Git-FTP

Currently it supports:
- Define new scope (Git-FTP remote)
- Delete existing scope
- Switch between scopes
- Init scopes after defined
- Push to scopes
- Enable/Disable Git-FTP features

This PR also rewrites most of the "remotes picker" feature.