fix and complete clone operation

This one fixes several issues with the clone operation:

- [x] Checkout files after a repository was cloned with default options.
- [x] Allow to create a bare clone of a repository.
- [x] Report the checkout progress to the API
- [x] Report checkout notifications to the API
- [x] Fetch support
- [x] ~~Push support~~ (needs HEAD of libgit2 -> implemented in another PR)
- [x] ~~Shallow clone support~~ (needs new PR)
- [x] ~~Set remote-alias and other options like push-/fetch-url~~ (needs new PR)