Support --source/-s option for `scv reset`

Sets the source commit of the reset. It can be given
a label or a commit id.

It can also be of the form '#{object_id}~#{num}' where num is
the commit offset (the number of times that its parent should be
followed).
For example 'head~3' means the fourth commit before the current one.
'head~0' is the same as 'head'.