Avoid dropping wielded objects and leaving them still wielded

This both makes sure that the unwield happens first (for Sunsword),
and adds an impossible() for items being removed from inventory
while still wielded.
Merge remote-tracking branch 'dtsund/savebreak' into nicehack

It's actually a misnamed nicehack.
Define _XOPEN_SOURCE on Mac OS X (specifically Darwin), too

Fixes #513.
Add locking code for POSIX-without-realtime-signals

For Mac OS X. This means that multiprocess play will require
keystrokes to update there, but that's pretty minor compared to a
compile failure.
Fix an overzealous check.

Solves a crash due to nasty summoning.
Fix typo.
Do not exercise wisdom during endgame disclose.

This prevents a crash during disclosure.
Properly set youmonst->data after changing sexes.

Fixes the desync from using an amulet of change.
Protection against uninitialized variable.
Correctly condition multiprocess play on Linux in allmain, too
Don't allow automatic recover/repair of suspiciously large percentages

Let's try to avoid accidents.
Ensure that venom always breaks.

Clean up `breaktest` while I'm there.
Merge branch 'nicehack' of git://gitorious.org/nitrohack/scshunt into nicehack
Modify level compiler & regions, avoid sentinel 0.

Change the sentinel to COLNO/ROWNO. This necessitates a change in the level
compiler that actually improves readability, if only very slightly.

I haven't tested this change thoroughly. There are likely still bugs in the edge
cases. This is definitely better than current behaviour though.
Define _DARWIN_C_SOURCE on Mac OS X

When _XOPEN_SOURCE is defined, this is necessary to also define a few
non-POSIX extensions that a few other Darwin headers use.

Fixes #525.
Add Misty De Meo to the credits
Fix static links on "windowprocs"

So this is what aimake was trying to tell me all this time; I should
have listened to it earlier. The problem is that both the engine and
the client library had a global variable "windowprocs"; if the client
library is a shared library, this is fine (because aimake prevents
shared library namespace pollution), but if it's being linked against
the engine directly, we have two global variables with the same name,
which is disallowed nowadays (due to the use of -fno-common, which
prevents the variables being merged with each other).

This renames the global in the client to client_windowprocs, fixing
everything in a much neater way than the AIMAKE_REVERSE_IMPORT method
we used to use (which is basically a way of telling aimake "shut up,
I know what I'm doing", and I didn't).
Avoid an infinite loop on certain hangups

This happened if the server thought there was no game running, but
the client thought there was a game running.
Postpone screen redraws until the last possible moment

Fixes #493, #507
Allow wishing objects into specific inventory slots

I'm planning to use this capability to produce a testsuite, some
time in the future. Wizmode wishing into a particular slot is
easier than trying to parse which slot the item ended up in.