Implement plugin options passing.

Implement a new feature to pass plugin option as part of the restore process.
Most of the plugin options input was already implemented but for the restore
the options were never pushed to the file daemon. We should pass it to the
filed and raise a bEventPluginCommand event. This way a user can pass in extra
hints to the plugin for the restore process. Currently the plugin only gets
passed in the plugin options that were defined at the moment the backup was made.

The options defined by the user at restore time are passed before the actual
options saved at backup time are passed so the plugin should take care to ignore
any of the options passed in as part of the backup stream being restored
when it already got a override at restore time.

We increased the FD protocol number to 52 to be able to detect if the file daemon
understand the new protocol keyword.

Along the way we tweaked the layout of fileset traversal code somewhat. Added
some spaces and fixed the scoping of the variables somewhat. So you understand
what is going on. And fixed the comments in the filed plugin code.

Fixes #207: Implement plugin options passing.
do_shell_expansion for default string only when it starts with a |
Implement a store_alist_dir function

We currently have the following functions:

- store_dir() (For storing a string with shell expansion to a dir/file)
- store_str() (For storing a string)
- store_alist_str() (For storing a list of strings)

we are missing a store_alist_dir() which stores a list of shell
expanded dirs/files.

Fixes #209: Implement a store_alist_dir function