Indent preprocessor directives in set_priority().
set_priority(): add "normal" as a priority.

This makes it possible to return to the default priority in a
documented way.
set_priority(): simplify code.

Simplify an expression by removing a multiply-by-0 part of an
expression.
set_priority(): Fix going from realtime to normal priorities.

The following code sequence (and many others) used to fail on systems
that have both the sched_setscheduler() and setpriority() syscalls:

    set_priority("realtime");
    set_priority("lower");

The first call would set the policy to SCHED_FIFO.  The second call
would not touch the policy, but just use setpriority().  The result is
that the process continues to run with realtime priority.

Fix by ensuring that the code calls both sched_setscheduler() and
setpriority() when SCHED_OTHER is in effect.

At the same time, reorganize the code somewhat to be more readable.
set_priority(): Raise an error on unsupported priorities.

Previously, the were handled as "normal".
set_priority(): Use SCHED_IDLE for priority "lowest".

On systems with sched_setscheduler and where SCHED_IDLE is defined,
use it when setting the priority to "lowest".
Stdio.Buffer: Handle UNDEFINED nbytes in input_from().

The nbytes argument may be UNDEFINED (typically when the once argument
has been specified). Handle it as if nbytes hasn't been specified.

Thanks to Stephen R. van den Berg <srb@cuci.nl> for the report.

Fixes some of [LysLysKOM 20998397]/[Pike mailinglist 14064].
Fixed warning.
Stdio.Buffer: Fix NOP call.