Properly implement scrolling in libuncursed.

In doing so, fix remaining menu display issues.
Restore the message when you start digging.
Refactor flags.soundok into a canhear() function.

The only real effect of this is to make it so that you no longer get the "you
dream you hear..." message which is a bit silly and should be reinstated on a
case-by-case basis for important messages (like the Wizard harrassments, maybe).

Unconsciousness is still broken though...
Massive reimplementation of helplessness.

There is probably future work to be done, but now helplessness can have a number
of different causes, each of which can exist separately and counts down
independently. This should lay the framework for fixing prayer.
Fix all the 80cols violations.

kill me...
A bunch of bugfixes for the new helpless code.

Thanks ais523.
Implement prayer! Yay!
Index columns starting from 0

The fact that columns are indexed from 1 and rows from 0 is *dumb*.

This probably breaks a bunch of other things in strange and wonderful ways, but
those can be fixed later. We need to bite this bullet at some point. A
surprising amount of code was already assuming 0-indexing so it doesn't need
changing (and just got slightly faster)

I also went and fixed a few indexing errors here and there. The things you
find...
Allow directional and targeted spells to be canceled.
Kill off one of the world's dumbest switch statements.
Fix a bug that turned autodig into passwall.
Make the list of innate structs in attrib.c much more readable.
Begin abstracting away u.uac.
Kill off find_ac().
Distinguish intrinsic protection from godly and eaten ring sources.
Don't make autotravel stop in doorways and such.  Fixes bug 373.
Fix the corridorbranch option.

Combination of 3 commits made by Sean Hunt:

Fix a bug with the corridorbranch option stopping all far travel in any corridor after a single move.

Better fix for the bug described in 660f64c.

Actually fix the aforementioned problem with autoexplore, not just directional farmove.
Fix the description of corridorbranch being the opposite of reality.
Add extensive documentation to lookaround.
Purge u.last_str_turn, which doesn't actually seem to be used for anything.