Remove the `victim` parameter from `rust_dmg`.

It's now calculated from `otmp` in the same was as `erode_obj`. The eventual
goal of this branch is to merge the functions together.
Make `rust_dmg` into a proper generic function.

Now `rust_dmg` is equipped to do everything `erode_obj` did, except for handling
blanking of scrolls, and I'm going to figure out how that works next.

Some notable decisions:
 - It now produces messages when objects on the ground erode or you determine
   that they are fooproof.
 - `rust_dmg` now matches `erode_obj`'s behaviour of allowing for identifying
   fooproof items. I made a judgment call to make this work even when a
   blessed object protects itself, on the basis that the hero will be able to
   detect minor erosion when a blessed object protects itself, versus none when
   it is fooproof.
 - I did not copy `erode_obj`'s behaviour of not having grease actually protect
   from erosion (wtf?).

I also added a new enumerator for erosion damage, which will be used more in
future commits.
Create a common function for water damage.

Refactor out `water_damage` to work on a single object, and create a new
`water_damage_chain` to hit all objects on a chain. Callers of `rust_dmg` which
caused water damage now use `water_damage` to ensure that all other attendant
effects take place.

The new `water_damage` function could use the ability to print some messages.
Fix up the `force` paramater to do what's desired.

The `force` parameter to `water_damage_chain` was actually never `TRUE`, and it
was being used for rust traps' water damage to skip the chance of damage not
being dealt. So it has been removed from `water_damage_chain` and no longer
forces grease to be used up in `water_damage`, which brings uses of that
function closest in line to the previous behaviour of not having the luck-based
saving throw for rust traps.
Make sure to hit polyforms' items with rust traps.

Previously, iron golem and gremlin polyforms would protect your inventory from
rust traps for no good reason.
Change around return values a bit.

This ensures that we get as close to previous behaviour as possible. In
particular, a rust trap that hits a layer of grease on an outer piece of armor
will not make it through to an inner one.
Merge `hurtarmor` and `hurtmarmor`.

They were the same anyway.
Eliminate `erode_armor`.

This fixes an unreported bug where passive attacks could erode armor covered by
other armor.
Convert `rust_dmg` to be the new `erode_obj`.

Also go through some places that actually modify erosion manually and adjust
them to use the new central function. Some are still left over and need closer
consideration.
Replace `get_wet` with `water_damage`.

Gameplay change: dipped containers now get their contents wet.
Add impossibles for `urustm` and `mrustm`.

I'm 95% sure that these functions never do anything ever. Just in case, I'm
going to leave them in with impossibles so that we can catch them later if it
turns out that they actually do.
Fix typo in the copyright file
Check for gloves when looking for stoning.
Merge remote-tracking branches 'coppro/nicehack' and 'dtsund/nicehack' into nicehack
Merge remote-tracking branch 'ais523/nicehack' into nicehack
Initialize level regions correctly.
Merge remote-tracking branch 'dtsund/nicehack' into nicehack

Conflicts:
	libnethack/src/mklev.c
Merge remote-tracking branch 'coppro/nicehack' into nicehack
Revert "Fix another piece of inverted logic, corrupting some level transitions."

This reverts commit 382d3054c82ccb29c6017edb82b7c5e9dafc762e.

It's both clearly wrong from a code logic perspective (and a
comparison-with-vanilla perspective), and causes impossible()s in
practice.

We should figure out what bug this was trying to fix, and fix it
correctly.
Don't drop worn objects during bones creation

Otherwise, it sets off the desync detector, which recovers via
undoing the death.

Fixes #551.