Repo#sync no longer fails when there were no changes to 'stash' before pulling

As well as the above, I've also added a remote_name argument to sync() that allows the specification of a remote - it no longer defaults to the use of 'origin'.