Make Git.FS independant of Unix

It's now easier to store Git files on raw block devices for instance.
More unix clean-ups
Update CHANGES
Fix travis
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
Add a pretty-printing function in Sync.Result

Should use s-expr converter everywhere at one point I guess ...
Filter out symbolic references before saving them on disk
Fix the compilation of tests
Merge pull request #12 from samoht/more-abstraction

Make Git.FS independant of Unix