switch: Don't check whether revision matches

It's quite possible that say "buildmaster" and "smoketested" are the
same revision - but we should allow switching between them.
upgrade: Properly set origin_refspec variable for resolve/printing

1) We were ignoring the remote, which is broken
2) We were printing NULL later on