Mi: mi backend + mi for command version

The machine interface option is now available for version. Other
commands will shortly follow. Mi backend is expected to grow with
addition of mi support to other commands.

How to use:
	lttng --mi <mi_output_type> <command>

This syntax will be the same for all commands. Currently *only xml is
supported as machine interface output.*

As for errors handling, if an error/warning occurs while using mi it
will be reported on stderr as normal. The integrity of the mi output
cannot be guaranteed if an error/warning occurs. The error output format
is consistent and easy for a machine client to parse. Thus no mi output
format is required for error output.

Example:
	lttng --mi xml version
Output:
<?xml version="1.0" encoding="UTF-8"?>
  <command>
    <name>version</name>
    <output>
      <string>2.4.0-rc2</string>
      <major>2</major>
      <minor>4</minor>
      <patchLevel>0</patchLevel>
      <name>Époque Opaque</name>
      <description>The Époque Opaque is a black IPA from Trou du Diable
      brewery. The nose is eerily reminiscent of the coffee crisp candy from
      of our childhood. These strong mocha accents are present on the palate,
      which are quickly subdued by Japanese and Australian hops leading to a
      final state of satisfaction enjoyable for any fan of bitter
      beer.</description>
      <url>http://lttng.org</url>
      <license>lttng is free software and under the GPL license and part
      LGPL</license>
  </output>
</command>

Signed-off-by: Olivier Cotte <olivier.cotte@polymtl.ca>
Signed-off-by: Jonathan Rajotte <jonathan.r.julien@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mi: add mi support for lttng struct

Add mi-lttng support to the following struct:
    lttng_domain
    lttng_channel
    lttng_channel_attr
    lttng_event
        +multiple mi utility format:
            common attribute
            tracepoint_loglevel
            tracepoint_no_loglevel
            function probe
            function entry
    lttng_event_field

mi-lttng other element
    pid element

Rebase on master:
Fix: remove extra linking due to add of mi-lttng to libcommon
Mi: support for command list

Signed-off-by: Jonathan Rajotte <jonathan.r.julien@gmail.com>
Mi: mi xsd validation

Command list and version supported
Mi version command: add commit version to mi version
Mi save&load command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi start command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi stop command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi create command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi destroy command: support and validation

Function destroy_session now take a session as argument. It simplifies the mi
support and give further information on the destroyed session.

Regular output is not affected but the refactoring. We could add the
supplementary information for regular printing if wanted.

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi calibrate command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi add-context command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi enable-channel command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi enable-event command: support for enable-event command

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi set-session command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi disable-event command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi disable-channel command: support and validation

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Mi fix: basic formatting

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Fix mi: add support for Jul loglevel

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>
Comment mi: update mi_lttng_domain todo

Signed-off-by: Jonathan Rajotte Julien <jonathan.r.julien@gmail.com>