Filed doesn't respond to first connection after start.

The setup of the thread specific key is flawed. In essence
its setup twice (once via the init_msg() call and once
via the pthread_once call in jcr.c). This new code fixes
that by:

- Setup thread specific data key only once.
- Use pthread_key_create_once_np when available.
  This is a non portable but cleaner implementation of
  both a pthread_once() and a pthread_key_create().
- For Windows use a workaround around pthread_once() as that
  seems to hang for unknown reason. Now we use a boolean
  protected by an mutex to make sure the setup is only done once.

Fixes #210: Filed doesn't respond to first connection after start.
Always use CoInitializeEx with multithread option.
Reorder closing message channel.

For every daemon always close the message channel before starting
the cleanup of the JCR so we have a much cleaner code path.

Also tweaked the layout of the code somewhat so that we have more
distinctive code blocks.
Enhanced help for run and restore command

Many available parameters for the restore and
run commands were missing in the help info and so
also in the <tab-tab> completion.

Now we should have hopefully all useful parameters documented
for run and restore.

Also, the tab-completion for "backupclient" and "restoreclient" now
works as it calls ".client"

Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com>