Generalise comma_separated_line.

Make a version comma_separate_fn, which additionally takes a callable
that converts an iterated-over value to a string.  Use that to simplify
skill_names, and also to implement the old comma_separated_line.
Use a more logical order.

[skip ci]
Support SPTYP_FIRE | SPTYP_CONJURATION syntax again.

By defining an operator| on spell type flags to produce a bitfield, not
an integer.  Likewise operator& and operator~, as well as variants of
& and | that take a flag on the left and bitfield on the right.

It would be nice to do this as a template, but we wouldn't want the
template to be instantiated for every enum, only some bit flag enums.
Statically assert that spell schools fit in a short.
Fix unintended recite message change.

Commit e3807df refactored away the trit array, but unintentionally
introduced a correlation between the "smite" and "sin" selections.
Make a macro to define an enum bitfield and operators.

It defines a typedef for an enum_bitfield; and bitwise operators on
the underlying flag enum, returning the bitfield type.
Fix an incomplete

sentence.
Add some documentation on using ctags-exuberant with crawl.

[skip ci]
Add stdout messaging for mon-util tests (|amethyst)
Fix Cigotuvi's animation (alefury)

Doesn't seem to cause horrible lag, so I'm going for it.
Send those debug_mon* messages to stderr.

Since fake_pty (used by make test) lets stderr through, this will let them
show up in Travis's build logs.
Fix !bad items with item_slot (#9322).
Simplify (Sandman25).
Don't mimic Enslavement at a friendly monster (#9290).
Differentiate += and ^= for item_glyph

This also modifies split_parse to support prepend vs. append in case
whoever was refactoring list-options to use split_parse continues
this activity.
Make feature, item_glyph, and mon_glyph into list options.

They aren't exactly list options, in that they aren't implemented using
the apropriate macro, and feature clearing works on regexps, but
this is meant to be helpful since some features have odd or long
exact names.
Apply feature colour overrides dynamically.

Previously feature colour overrides were added directly to feature
descriptions, so that defaults were lost. This is required to
correctly support feature = and feature -= if options are changed
at runtime.
Fix formatting.
Replace some (*foo).bar with foo->bar.
Improve docs.

Mention that monster glyph overrides can be cleared, and that none of
the three overrides need :replacement with -=.  Also match the existing
convention for showing multiple uses of an option.