introduced the internal class CheckoutOptionsRef

This is a bigger attempt to fix and enhance the CloneOperation while retaining full compatibility. Fixes also a bug when setting the pathes in the constructor.
fixed initialization of CloneOptions
use our new CheckoutOptionsRef class to pass the checkout options to a clone operation cloning
moved initialization of callbacks to constructor
cleanup
introduced the ICheckoutEvents interface
use CloneOperation as a provider for checkout events
cleanup
renamed header file "IRemoteEvents.hpp" -> "IGitEvents.hpp" as it is an interface collection
minor: fixed some copyright info
renamed cpp/hpp files RemoteCallbacks -> GitEventCallbacks as well and fixed all include lines
added class DiffFile / DiffFilePrivate
added class CheckoutNotify
implementation of event "checkoutNotify"
prepare clone operation for "depths" and "remote-alias" parameters

The options "depths" and "remote-alias" are not yet supported by the libgit2 clone api. Setting them produces errors.
CloneOperation: allow setting the reference to checkout
added skeleton classes for remote operations fetch & push
minor corrections
inherit CloneOperation from RemoteOperation
completed implementation of FetchOperation