Create branches from OIDs, not refs

When a branch ref is created pointing to _another_ ref, Weird
Shit™ happens. It’s really more correct to start from an OID.
Test branch creation from an OID
Merge pull request #318 from libgit2/branch-from-oid

Create branches from OIDs, not from refs