Fix up user agent strings

  - Add a link to the default UA per request: RT #94885
  - Warn when the UA isn't sufficiently customized, and encourage
    devs to provide an 'operator'
  - Add a link to the test suite's UAs

Fixes gh-61, RT #94885, gh-66
Refactor extraction of namespace aliases

This was always pretty hairy, because the response is split between
the "namespacealiases" and "namespaces" sections, and you have to
merge them.

This replaces the loop with a doubple-map that may be clearer,
because this shows the two steps separately. n is small enough (~4
for most wikis) that we don't care about efficiency. Comments have
also been added.

Addresses gh-64 in part.
Use constants instead of magic numbers

Create a library of importable constants, and use them in place
of hardcoded magic numbers, which were being used for boolean
return values (changing this might be overkill), namespace
numbers, and certain status information like the nonexistence
of a wiki page and the (non-boolean) file status.

Fixes gh-59.
Convert loops to maps so they're more comprehensible
Escape URLs containing regex metacharacters
Catch when a CAPTCHA has been encountered

This doesn't give you any way to deal with the CAPTCHA yet, but
it can let you know what happened. Since CAPTCHAs aren't a "real"
error condition, they're presented differently, and we didn't
understand that, leaving no error information in the Bot object's
error attribute. Now, we add a specific error constant and provide
the data needed to proceed in the details. The next step is to
augment the edit method with a way to accept both the ID and the
solution, and retry properly. It might also be interesting to try
an automatic interactive retry option.
Set some common options for prove

In particular, specify tests which shouldn't run in parallel. The
tests identified as "seq" will always be run sequentially, while
all others are eligible for parallel execution. Specify -jN to
run N test jobs.
Also skip editing tests when a CAPTCHA is encountered