When running "arc land" from a detached HEAD, don't try to delete the source ref
When running "arc land" from a detached HEAD, don't try to delete the source ref

Summary:
Fixes T10321. Some reasonable but less-common workflows involve running `arc land` from a detached HEAD state.

When users do this, we currently try to delete the raw hash as though it were a branch during cleanup. Instead, detect if the thing we're thinking about deleting is a branch or not, and just leave it alone if it isn't.

Test Plan:
  - Ran `git checkout <some hash>`, then `arc land --revision <some revision>`.
  - Before, everything worked but cleanup tried to `git branch -D <some hash>`.
  - After, everything worked and cleanup skipped branch deletion.

Maniphest Tasks: T10321

Differential Revision: https://secure.phabricator.com/D20786

phacility/arcanist,phacility/arcanist,uber/arcanist,codelabs-ch/arcanist,Khan/arcanist,Khan/arcanist,phacility/arcanist,codelabs-ch/arcanist,uber/arcanist,codelabs-ch/arcanist,phacility/arcanist,uber/arcanist,Khan/arcanist,uber/arcanist,codelabs-ch/arcanist,Khan/arcanist,codelabs-ch/arcanist,phacility/arcanist