Repository.xs: Implemented additional clone and checkout callbacks

* clone: progress, completion, transfer_progress and update_tips
* checkout: notify, progress

The clone callbacks also apply to Remote objects (set via $remote->set_callbacks())
Repository.pm: Updated callback documentation
Remote.xs: Implemented additional callbacks
Remote.pm: Updated callback documentation
Remote.xs: Check set_callbacks() return code
Renamed 'creq_acquire' callback in clone() to 'credentials'.

Makes Git::Raw::Repository -> clone() consistent with Git::Raw::Remote -> set_callbacks()
Remote.xs: Prevent leaks when setting update callbacks.
Remote.xs: Possible fix for remote memory leak?