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>