Implement Reference.target= as a method

This new method is Reference.set_target() which in addition lets you
specify what to use in the reflog.
Get rid of Reference.append_log()

We do not want this as it is riddled with race conditions.
Get rid of a settable Reference.target

Updating the target of a reference is not like setting a property. It
involves appending to the reflog under the same lock, so we must do it
all the same time. Thus setting the target becomes a function which
takes the new target and what the use would like to add to the reflog.
Update reference documentation