Structural changes to the basic multi-template enroll command

Handle enrollment of multiple independent templates by creating a single
element template list from each input template, then processing these
TemplateLists in parallel. This changes the basic operation for processing
templates derived from a sinlge image from project(template, template) (a
single input/single output function) to project(templateList, templateList),
which allows for a transform to output a variable number of templates from a
given input (e.g. a detector can output multiple templates, or a filter can
remove templates that don't meet some criterion).

The basic parallel execution code loop is implemented using
DistributeTemplateTransform, instead of through Template::Project(list), and a DistributeTemplateTransform is automatically prepended to input enrollment
algorithms. This avoids the problem of having to decide whether or not a split
should take place on every call to project(templatelist), and since the
distribute transform is just a normal transform, it can be applied more than
once in a given algorithm (when this is desirable).

Implement ExpandTransform as a basic Transform that take a template list as
input, and expands it for its output (in project(templatelist)), due to the
restructuring ExpandTransform no longer has to essentially mimic the
functionality of PipeTransform to function correctly.

This commit breaks binary compatibility (of saved models), so updates to the
pre-trained face recognition and gender classification models are included.
Modify dbGallery to actually give deterministic output

Make a call to qSort prior to shuffling the records received by a dbGallery
this makes the output of a dbGallery deterministic for a given query (as long
as the seed is set).
Merge pull request #26 from biometrics/variable_output

Structural changes to the basic multi-template enrollment operation