CS222: Add potions of blood and vampire blood

From SLASH'EM. These potions always appear as "blood-red" potions.

Throwing either of these potions on a lawful or neutral altar converts
the altar to chaotic and abuses wisdom.

Vampires have a 50% chance to be generated with a potion of blood or
vampire blood, the latter more often at higher experience levels. They
may drink vampire blood to heal themselves d8 + d2 HP if not cursed
("The vampire looks full of life").

If you drink blood or vampire blood and you're a vampire, you'll receive
nutrition (half a food ration's worth if vampire blood, otherwise a tiny
bit). If it's blessed vampire blood, your HP and max HP will also
increase. If you're not a vampire, you'll anger your god and take a big
alignment record hit (-15) if lawful, or no god anger and only a small
hit (-3) if neutral; either way you'll permanently polymorph into a
vampire. Drinking plain blood just makes you vomit.

Unicorn horns will clear potions of blood and vampire blood to plain
water.

Note that the MUSE_ constants live in monuse.h in NitroHack, so
MUSE_POT_VAMPIRE_BLOOD exists there rather than in muse.c.
CS223: Make vampire blood potions cancel to blood
CS224: Change polymorph w/ potion of vampire blood

From SLASH'EM.

A blessed potion turns you into a vampire lord. An uncursed potion turns
you into a vampire. A cursed potion turns you into a vampire bat. These
polymorphs are permanent, as before.
CS225: Broken cameras free picture-painting demon

Original patch by L: http://bilious.alt.org/?206

1 in 3 times an expensive camera breaks, a homonculus may be released.
I believe this is a reference to Discworld.
CS226: YAFM for putting a bag of holding in itself

"Creating an artificial black hole could ruin your whole day!"
CS228,229,231-233: Randomize Creator deity name

Changeset 228 contains the names and randomization. 229 refactors code,
231 adds more names, 232 replaces one and 233 randomizes based on the
player character's 'birthday'.

UnNetHack uses %n in the quest.txt test pattern where %m is intended,
which is fixed here.
CS234: Fix Town stairs in subroom walls

A way out of the Town branch's top level is now guaranteed, working
around the problem in commit 9dcf86705f (new special level compiler).
Fix null level in rloc_to()

Another special level compiler null global level pointer bug. This
segfault occurs when a shop tries to generate a shopkeeper when a
mosnter is in the desired location, attempting to move the monster with
rloc_to(), which in turn uses the global level pointer when its null.

Complements commit fd571a1f9a (remove special level compiler hack).
CS239: Refactor potion dipping into new fn dip()
CS240-248: Color Alchemy by Nephi

Color alchemy changes NetHack's alchemy system to use the colors and
brightness of the mixed potions to determine the resulting potion.
Combination rules:

 * Determine color
   + Primary colors
     - red + yellow = orange
     - red + blue = purple
     - yellow + blue = green
   + Secondary colors
     - secondary + secondary = brown
 * Determine brightness
   + light + light = light
   + dark + dark = dark
   + light + dark = random
   + pure potions override brightness of diluted ones
 * Black and white 'colors'
   + black + white = gray
   + black + color = dark color
   + white + color = light color
 * Other combinations
   + 1/2 evaporate, 1/4 sickness, 1/8 random, 1/8 water (as usual)
 * Exceptions
   + polymorph always polymorphs the other potion

Black and white make colored potions dark or light. All other potion
descriptions are considered non-colors and thus fall under the "other
combinations" rule above.

Mapping of color descriptions:

 * Light primary colors
   + pink (light red)
   + sky-blue (light blue)
   + yellow (light yellow)
 * Light secondary colors
   + puce (light purple)
   + orange (light orange)
   + emerald (light green)
   + ochre (light brown)
 * Dark primary colors
   + ruby (dark red)
   + indigo (dark blue)
   + golden (dark yellow)
 * Dark secondary colors
   + magenta (dark purple)
   + amber (dark orange)
   + dark green
   + brown (dark brown)

In addition to color alchemy, this set of changesets allows you to dip a
lichen corpse in a potion of acid, turning it red (or orange) around the
edges if it's acid, and reduces alchemy blast damage to d5 if you're
acid resistant.

Changeset 240 is the creation of the color_alchemy branch in UnNetHack's
Subversion repo. 241 is the Color Alchemy patch by Nephi
(http://bilious.alt.org/?59). 242 moves some colors and fixes dipping
for blood-red potions. 243 fixes dipping of fruit juice and blood. 244
swaps ochre (dark) and brown (light) colors. 245 grants protection from
alchemical blasts if acid resistant. 246 makes potions of acid always
explode during alchemy. 247 is the Litmus patch by Dylan O'Donnell
(http://bilious.alt.org/?101). 248 is a Subversion merge of all the
previous changesets into trunk.

Note the use of strings for colors, and the handling of the static
variable init in alchemy_init, which is renamed alchemy_init_done and is
properly (re)set by NitroHack's init_data() function.