Create branches from OIDs, not from refs

When a branch ref is created pointing to _another_ ref, Weird Shit™ happens (and it's not the same as _tracking_ the other ref).

It’s really more correct to start from an OID.