Currently interpret_branch_name() tries to parse various things, and
finally falls back to parsing <branch>@{u[pstream]}. It dies if the
input string contained an "@{u[pstream]}" but an upstream could not be
found. The logic can be generalized to check for any branch property
after branch_get(). In preparation for introducing more special @{...}
forms, factor out die_no_upstream().