Fix: add a kernel context list to the channel

The internal state of the session daemon was recording only one context
per channel thus overwriting the previous one if multiple context were
added causing a memory leak.

This commit adds a list inside a kernel channel which keeps track of all
context added. It also fixes the save command that now saves all of
them.

Fixes #205

Signed-off-by: David Goulet <dgoulet@efficios.com>
Fix: set session in output mode if URL are set afterwards

Fixes #809

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