Move some type declaration around to ease the API

Now this works as expected:

```
open Git
open Git_unix
module R = Remote(S)
```
Rename Remote to Sync to better reflect the semantics
Slight name change