magit-completing-read-function: sort choices by preference
magit-{ido,iswitchb}-completion-read: doc-string cosmetics
magit-prompt-with-default: new function

Split `magit-prompt-with-default' from `magit-builtin-completing-read'
so that it could also be used by other `completing-read' replacements
and wrappers.
magit-completing-read: be strict about REQUIRE-MATCH

`completing-read's REQUIRE-MATCH means "require the user to exit with
a match, but there are exceptions in which case an empty string is
returned".  That's not so useful because every caller has to check
for that empty string.

Previously `magit-builtin-completing-read' did detect that case and
raise an error if `completing-read' returned an empty string.  Now
we do this in `magit-completing-read' so that this sanity check is
applied regardless of what `magit-completing-read-function' is used.

Remove equivalent checks from `magit-read-remote-branch' and
`magit-read-rev'.  Now that we do this in the correct place we no
longer have to do it in several places.
magit-completing-read: better doc-string
Merge branch 'n/completion-1' into next