Add consumer-stream.c/.h in libconsumer

This new file contains relevant calls to a lttng_consumer_stream object
and for now breaks down consumer_del_stream() in consumer.c that got out
of hand in terms of size and can not be used if the stream was not
previously successfully added to a thread which makes difficult the
deletion of a stream in some error path or in no monitor mode (future
mode for streams with snapshots).

It helps also modularize the consumer object a bit better and makes this
code a bit easier to maintain and to evolve better.

At this commit, no components use this yet. Future work will
incrementaly move every consumer stream specific actions to that file
and of course use those calls.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Use the consumer stream API in consumer_del_stream()

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Snapshot API

Every call has been coded in liblttng-ctl. Nothing on the session daemon
side yet apart from adding the case to the process client command
subsystem.

!!Need comments!! before mergin that commit.

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Add snapshot command to lttng UI

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Snapshot commands in sessiond

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] lttng snapshot command fails if session is not in no output mode

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Flight recorder feature

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Kernel snapshot support

**ADD CHANGELOG**

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] add kernel consumer destroy channel. NOT COMPLETED

Signed-off-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] free stream in the no monitor list on del channel

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] Some fixes. Veille technologique (RLNX inside)

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] destroy kernel channel fix

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] sessiond destroy metadata

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] close and free metadata stream on destroy channel kernel

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] add destroy metadata after metadata snapshot in sessiond

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] don't send metadata if session no output

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] fix crass malfait

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] fix crass malfait

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] don't close metadata stream on del channel

Signed-off-by: David Goulet <dgoulet@efficios.com>
Fix: close wait_fd on kernel tracing

The wait_fd in the kernel consumer streams was not closed causing a leak
of FDs in the consumer and never triggering the teardown mechanism in
the kernel tracer. This applies for metadata and data stream.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>