Record scheduling overheads in per-CPU Feather-Trace buffers

Avoid cache-line contention on the global trace buffer by recording
scheduling overheads into processor-local buffers.
Reduce number of atomic operations in per-CPU Feather-Trace buffer writes

If there is only a single writer, we can avoid all atomic ops but one
that is used to communicate with the reader.
ftdev: add ->calibrate() ioctl support

Allow ftdev clients to provide a ->calibrate() method.  This will be
used by the Feather-Trace overhead tracing code.
Add TSC offset calibration code to Feather-Trace device

This patch adds the ->calibrate() ioctl to determine the TSC offset
between any two cores.
Feather-Trace: switch SEND_RESCHED to per-cpu tracing
Feather-Trace: move calibration and user logging to per-CPU devices

User-space events should always be written to the local per-CPU
Feather-Trace buffer.

The calibration code is only relevant for the message tracing, so
it makes more sense to register it there.

This makes the old global Feather-Trace device obsolete.
Feather-Trace: remove legacy global device file

This patch removes the now unused global Feather-Trace device file,
which is normally called /dev/litmus/ft_trace0 in userspace.