misc.py: helper roles_to_remotes for generic use

roles_to_remotes will take a config key, 'roles' by default,
and search cluster.remotes for those roles, returning a list
of remotes that hold it.  The list is uniquified by default,
but that can be overridden.  So you can have a task that
should run on specific roles, configure it with
"roles: [mon.0 server.0 osd.2]", and call this to get a list
of remotes that contain those roles.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Add calamari setup/test tasks

Signed-off-by: Warren Usui <warren.usui@inktank.com>
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Fix flake8 failures

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Review: Rename calamari_testdir/ to calamari/
Review: refactor packaging routines to common file

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Review: switch to selecting remotes by roles in the 'normal' way

This buys us, also, the ability to select remotes by rule, i.e.
"any osd or mon gets calamari-agent installed"

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Merge pull request #188 from ceph/wip-calamari-onefile

Add Calamari test tasks, test script