Protect SCHED_LITMUS tasks from reschedules triggered by SCHED_FIFO enqueues.

(BB: edited to include <litmus/litmus.h> to resolve compile error.)
Avoid race in do_release_ts()

The list is concurrently being modified by the waking processes.  This
requires the use of the list_for_each_safe() iterator.

Reported by Glenn Elliott.
Reimplement plugin switching using stop_machine()

stop_machine() does exactly what we want (avoid all concurrent
scheduling activity) and much simpler than rolling our own (buggy)
implementation.
TRACE_TASK(): accept NULL pointers

Allow tracing of NULL tasks. Makes debugging a bit easier.
FDSO: fail to build if some ops are missing

Prevents out-of-bounds lookups.
P-FP: fix BUG_ON releated to priority inheritance

In some cases, the PCP priority inheritance code triggered a
(defensive) BUG_ON() in fp_common.c. This shuffles the order of
operations a bit to be compliant with the restriction that tasks are
never compared against themselves.
Fix tracepoint compilation error

Linux tracepoints for real time tasks were causing
compilation errors. For the tracing data structures to be
properly created, it's necessary to add a #define.
PCP: allow NULL config parameter

When the config parameter is NULL, just default to the local CPU,
which is what we want in 99% of the cases anyway.
Disallow nesting of LITMUS^RT locks

Nesting of locks was never supported in LITMUS^RT since
the required analysis does not exist anyway. That is, as
defined in the literature, the protocols implemented
in LITMUS^RT have not been studied in conjunction with
nested critical sections.

In LITMUS^RT, attempting to nest locks could lead to
silent or not-so-silent bugs. This patch makes this
restriction explicit and returns EBUSY when a process
attempts to nest resources.

This is enforced on a protocol-by-protocol basis,
which means that adding protocols with support for
nesting in future versions is not affected by this
change.

Exception: PCP and SRP resources may be nested,
but not within global critical sections.