DNM: blkin

This branch is a cleaned up version of the work Marios Kogias first posted against Ceph 0.80.1 in August.
http://www.spinics.net/lists/ceph-devel/msg19890.html

TODO:
 * split build changes from msg/optracker changes
 * remove leftover debug uses of write() in Message::init_trace_info()
 * add autoconf/automake support to build blkin as submodule
 * add autoconf/automake support to conditionally enable blkin
 * move the changes forward to ceph:master
 * add Andreas' tracepoints https://github.com/ceph/ceph/pull/2877 using Blkin
   and investigate how easy it is to select the level of tracing detail

With these changes Ceph can use Blkin, a library created by Marios Kogias and others, which enables tracking a specific request from the time it enters the system at higher levels till it is finally served by RADOS.

In general, Blkin implements the tracing semantics described in the Dapper paper http://static.googleusercontent.com/media/research.google.com/el/pubs/archive/36356.pdf in order to trace the causal relationships between the different processing phases that an IO request may trigger. The goal is an end-to-end visualisation of the request's route in the system, accompanied by information concerning latencies in each processing phase. Thanks to LTTng this can happen with a minimal overhead and in realtime. In order to visualize the results Blkin was integrated with Twitter's Zipkin http://twitter.github.io/zipkin/ (which is a tracing system entirely based on Dapper).

In addition to cleanup, I've written a short document describing how to test Blkin tracing in Ceph (without Zipkin). See doc/dev/trace.rst