task/install.py: Allow installation of non-ceph

Generalizes the install task to specify a "project" which defaults to
'ceph', but can be configured to install different project packages,
for example:

install:
  project: samba
  extra_packages: samba

The default install task uses 'ceph' as the project, and relies on an
existing set of defined packages to install.  For other projects, the
packages to be installed must be specified with the extra_packages
field.  Multiple install tasks can be specified:

install:
install:
  project: samba
  extra_packages: samba

Which installs ceph packages and then samba packages.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
task/daemon-helper: Add nostdin option

Some daemons (smbd) will try to read from stdin and check if its a
socket, using that for sending/receiving messages.  If /dev/null is
used for stdin, the daemon aborts.  This patch adds a 'nostdin' option
to the daemon-helper so that the daemon can be started without /dev/null
as stdin.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
task/samba.py: Samba task to setup/start smbd

The samba task sets up samba on all 'samba' roles
with ceph as the backend storage module.  The task
creates a smb.conf file that points to ceph, and
starts smbd.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
task/cifs-mount.py: Task for mounting cifs

The cifs-mount task mounts a smb endpoint from the
first available smbd server (the samba.0 role).  This
task is similar to the ceph-fuse task, file system
tests can be run on the resulting mount point.

Signed-off-by: Sam Lang <sam.lang@inktank.com>