Improve Mercurial command completion.

Rewrote the completion file by hand.  Added completion of files, bookmarks,
revision labels, etc.
Use local scope for variables in Mercurial completion functions.
Use the current commandline token for Mercurial filename completion.

The token variable was being used, but I must have accidentally deleted its
definition while I was working on the original version of the file.
Remove unnecessary use of uniq in Mercurial completion.

Fish already takes care of duplicate completions.
Add the __fish prefix to all Mercurial completion functions.
Replace use of xargs with command substitution in Mercurial completion.
Add fallback for label completion in older versions of Mercurial.
Properly complete Mercurial bookmarks when only one bookmark exists.

The if statement checking the output of hg bookmarks uses two conditions
joined by the or keyword.  However, only the first part was being used.
Wrapping the two statements with begin and end properly combines them.
Properly detect when MQ is enabled for Mercurial completion.