suite: generalize collection expansion
suite: generalize collection expansion

Previous, a collection was a directory like this:

 mycollection/
 mycollection/facet1/
 mycollection/facet1/1a.yaml
 mycollection/facet1/1b.yaml
 mycollection/facet2/
 mycollection/facet2/2a.yaml
 mycollection/facet3/
 mycollection/facet3/3a.yaml
 mycollection/facet3/3b.yaml

and this would expand to

 1a + 2a + 3a
 1a + 2a + 3b
 1b + 2a + 3a
 1b + 2a + 3b

The fixed directory depth and requirement for a subdir even
when there is only 1 item is annoying.  Instead, allow an
arbitrary directory structure, with the following rules:

 - a .yaml file is a taken as-is (duh); other files still
   ignored
 - a directory is normally just a way to organize files.  We
   recursively descend and build a list of what we fine.
 - a directory with a '%' file in it is special:
     - take the product of every item in the dir (much like
       we did before)
 - a directory with a '+' file in it is special:
     - concatenate everything in the dir into one job

Note that this is equivalent to the previous structure if we
do:

 for facet in mycollection/* ; do touch $facet/% ; done

We can clean up slightly be taking any dir with only one yaml
file in it and replacing the dir with the bare .yaml.

Once this is done, we can reorganize directories however we
like.

Signed-off-by: Sage Weil <6dd34506bbd5e58221bbb3e4732d97c91f02277b@inktank.com>

ceph/teuthology,caibo2014/teuthology,zhouyuan/teuthology,ktdreyer/teuthology,t-miyamae/teuthology,zhouyuan/teuthology,michaelsevilla/teuthology,SUSE/teuthology,dmick/teuthology,ktdreyer/teuthology,ivotron/teuthology,dreamhost/teuthology,caibo2014/teuthology,SUSE/teuthology,tchaikov/teuthology,robbat2/teuthology,dreamhost/teuthology,SUSE/teuthology,tchaikov/teuthology,michaelsevilla/teuthology,dmick/teuthology,yghannam/teuthology,robbat2/teuthology,ivotron/teuthology,t-miyamae/teuthology,ceph/teuthology,dmick/teuthology,yghannam/teuthology