Support building with CC=clang

clang doesn't support -fno-strength-reduce (gcc doesn't either, these days, but
it silently ignores it). clang also doesn't support -r (it uses -Wl,-r instead,
which also works with gcc).
Make it so skills, hitdie and exp modifier when selecting a class on the birth screen are shown with racial adjustments, a la stat display.  Fixes #1705 (thanks danial.santos).
Refactor a load of duplicated code in mon-power.c.  Patch mostly by daniel.santos.  Closes #1706.
Refactor and simplify get_obj_num_by_kind().  Patch by daniel.santos.  Closes #1707.
Fix up article handling in messages reported in forum posts.  Closes #1500.
Make sure that both Enter and 't' can toggle options in all option submenus.  Closes #1501.
Make the default macro for 'swap weapon' be assigned to 'x' instead of 'X'. Closes #860.
Change alloc_prob and rarities to an int instead of a byte.  Closes #1677.
Fix article handling when a detected item that's really a mimic, but is displaying as a red star because the player hasn't had LOS with it yet, is found to be a mimic.  Closes #1676.
Fix tests from previous commits.
Consign p_ptr->command_arg to the dustbin.
clang-initiated refactors.

Correct the following classes of errors, mostly codebase-wide:

1. Locals or arguments that shadow globals
2. Locals that shadow other locals
3. Functions that should be static but are not
4. Use of enum types to store bit flags
5. Uninitialized-but-maybe-used variables
6. Unused macros/variables/functions
More clang cleanups.

These touch main-x11, main-gcu, and the z-* libraries.
Merge remote-tracking branch 'elly/clang-cleanups'
Merge remote-tracking branch 'elly/clang-warnings'
remove noreturn annotation
fix unsigned warning
Updates to main-stats and wiz-stats to remove m_ptr->r_idx.
Merge remote-tracking branch 'myshkin/stats-fix'
remove noreturn definition