improve scoop + bucket update robustness
improve scoop + bucket update robustness

* avoid merge conflicts for repos with non-linear or other unusual updates (forced updates, etc)
* use `fetch`, `reset`, `clean` instead of `pull`

.# Discussion

The former mechanism used to update scoop and buckets was a simple `git pull -q` which
could lead to merge errors, leaving the repo in an undefined state. By instead using a
`fetch`, `reset`, and `clean` methodology, the update is more resilient and leaves scoop
and/or any buckets as a mirror of the current state of their remote repository.

rivy/scoop