Use vmalloc() to allocate Feather-Trace buffers

Allocating contiguous buffers with kmalloc() is subject to severe
maximum size limits. For Feather-Trace to work, we don't actually need
*physically* contiguous memory; virtually contiguous memory is
sufficient. By switching to vmalloc(), the code gets simpler and we
can support much larger buffers.

For convenience, this patch also adds a configuration option for
the desired Feather-Trace buffer size and increases the default
size.
GSN-EDF: link tasks to local CPU if it is idle

If a task is released on a CPU that is idle, then it is pointless to
send an IPI to another CPU just to schedule the newly released task.
This patch changes check_for_preemptions() to prefer the local CPU
first if it is idle.
Disable timer slack for LITMUS^RT tasks in nanosleep()

As with SCHED_FIFO/SCHED_RR tasks, artificial latency is not
desired...
Augment rt_task() with is_realtime()

Whenever the kernel checks for rt_task() to avoid delaying real-time
tasks, we want it to also not delay LITMUS^RT tasks.  Hence, most
calls to rt_task() should be matched by an equivalent call to
is_realtime(). This patch fixes a few places where this was missing.
Notably, this affects the impolementation of select(), which uses
timer_slack_ns when setting up timers for non-real-time tasks.